2010-11-26 9 views
0

私はtimertaskを使って、固定小数点座標で描画されたラインを(1秒ごとに)リフレッシュしようとしました。しかし、行はリフレッシュするように見えません...私のコードに何か間違っていますか?timertaskが機能しません!

LineRefresh.java:

package LineRefresh.xyz.com; 
import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 

public class LineRefresh extends Activity { 
DrawView drawView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    drawView = new DrawView(this); 
    drawView.setBackgroundColor(Color.WHITE); 
    setContentView(drawView); 

} 
} 

DrawView.java:私は、代わりに、私のコードのどこかTimerTaskをを置く

package LineRefresh.xyz.com; 
import java.util.Timer; 
import java.util.TimerTask; 
import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.view.View; 

public class DrawView extends View { 
Paint paint = new Paint(); 

public DrawView(Context context) { 
    super(context);  
} 

@Override 
public void onDraw(final Canvas canvas) { 
    paint.setColor(Color.BLACK); 
    canvas.drawLine(50, 200, 270, 200, paint); 

    Timer timer = new Timer(); 
    TimerTask task = new TimerTask() { 
     @Override 
     public void run() { 
      paint.setColor(Color.BLACK); 
      canvas.drawLine(50, 200, 270, 200, paint); 
      } 
    }; 
    timer.schedule(task, 1000,1000); 
} 

} 

sholud?

+0

スレッドをonDrawで実行することは、おそらくどのプロジェクトのどの言語でも見た設計方法の中で最悪のものです。 – Falmarri

答えて

1

むしろ一定時間後にUIを更新するためにAndroidのハンドラを使用しています。

+0

私はここでそれを提案しました:http://stackoverflow.com/questions/4277032/i-want-to-add-a-timer-to-my-codeしかし何らかの理由で彼は同じことについて質問を唱えるつもりです。 – Knossos

関連する問題