1. AndroidDroid, 30.06.2011 #1
    AndroidDroid

    AndroidDroid Threadstarter Neuer Benutzer

    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);
    		}
    	}
    }
    
     
  2. ko5tik, 30.06.2011 #2
    ko5tik

    ko5tik Android-Experte

    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
     
  3. Fr4gg0r, 30.06.2011 #3
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Thread.sleep() + invalidate() wäre eine Möglichkeit
     
  4. ko5tik, 30.06.2011 #4
    ko5tik

    ko5tik Android-Experte

    sllep() auf UI-Thread? halte ich für keine gute Idee
     
  5. Fr4gg0r, 30.06.2011 #5
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    joa stimmt schon, vermutlich würde das system die app irgendwann abschießen weil sie auf touch events nicht reagiert.^^
     
  6. w0rmhunter, 30.06.2011 #6
    w0rmhunter

    w0rmhunter Neuer Benutzer

    Schau dir mal das hier an:
    Updating the UI from a Timer | Android Developers
    Da wird beschrieben wie man einfach und effektiv die UI in bestimmten Intervallen updaten kann.