SurfaceView wird sehr unregelmäßg geupdated

A

Antdoit

Neues Mitglied
1
Hallo,

meine Klasse Thread malt Pixel in ein Canvas:

Code:
    @Override
    public void run(){
        //super.run();
        Canvas can = this.holder.lockCanvas();
        Renderer renderer = new Renderer(new Scene(), can, new Vector3D(0.0f, 0.0f, 10.0f),6);
        this.holder.unlockCanvasAndPost(can);
        this.renderer = renderer;
        while(running){
            Canvas canvas = this.holder.lockCanvas();
            renderer.canvas = canvas;
            renderer.RenderOneStep();
            this.holder.unlockCanvasAndPost(renderer.DisplayResult());
        }
    }

In meiner MainActivity erzeuge ich einen neuen Thread mit:

Code:
        while(locker) {
            if (this.holder.getSurface().isValid()) {
                MyThread myThread = new MyThread(this.holder);
                myThread.start();

                this.runningThread = myThread;

                locker = false;
            }
        }

Demnach wird sofort nach dem Starten der App der Thread gestartet. Manchmal erscheint innerhalb von einer Sekunde das Bild. In den allermeisten Fällen wird das ganze Display aber erst weiß, nach wenigen Sekunden dann dunkelgrau. Das erste Bild erscheint erst in 1 - 2 Minuten. Woran liegt das?
 
Hi,

versuch es mal mit invalidate()
Das macht einen Refresh auf die Surfaceview
 
Danke dir, funzt :thumbsup:
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
10
Aufrufe
212
swa00
swa00
A
Antworten
4
Aufrufe
1.540
jogimuc
J
allesausbits
Antworten
22
Aufrufe
1.950
swa00
swa00
Zurück
Oben Unten