Wie Canvas alle 500ms neu zeichen?

A

AndroidDroid

Neues Mitglied
0
Hallo
Ich möchte alle halbe Sekunde eine zufällige Linie zeichnen, das folgende Anfängerprogramm habe ich mühsam zusammengesucht, wenn ich das Programm von Hand neu aufrufe funktioniert es. (*freu*)

Aber wie baue ich ein regelmässiges neu zeichnen ein?
canvas.redraw(),Thread.sleep() etc habe ich erfolglos probiert. :blushing:

Code:
package com.example.DrawDemo;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.os.Bundle;
import android.view.View;
 

public class DrawDemo extends Activity {
	DemoView demoview;
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		demoview = new DemoView(this);
		setContentView(demoview);
	}

	private class DemoView extends View{
		public DemoView(Context context){
			super(context);
		}

		@Override protected void onDraw(Canvas canvas) {
			super.onDraw(canvas);

			Paint paint = new Paint();
			paint.setStyle(Paint.Style.FILL);
			paint.setColor(Color.WHITE);
			canvas.drawPaint(paint);
			
			paint.setColor(Color.RED);
			canvas.drawLine(0, 300+10, (int)(Math.random()*300), 300+10, paint);
		}
	}
}
 
Wenn du etwas in Echtzeit zeichnen willst ( Echtzeit bedeutet in diesen Kontext, zum definierten Zeitpunkt) kommst du nich an SurfaceView vorbei. Schau dir den LunarLander an
 
Thread.sleep() + invalidate() wäre eine Möglichkeit
 
sllep() auf UI-Thread? halte ich für keine gute Idee
 
joa stimmt schon, vermutlich würde das system die app irgendwann abschießen weil sie auf touch events nicht reagiert.^^
 

Ähnliche Themen

M
Antworten
3
Aufrufe
151
moin
M
D
  • Data2006
Antworten
14
Aufrufe
484
jogimuc
J
C
  • CoderboyPB
Antworten
3
Aufrufe
926
swa00
swa00
Zurück
Oben Unten