J'ai essayé d'utiliser un masque de temps pour rafraîchir une ligne (toutes les secondes) dessinée avec des coordonnées de point fixe. Mais la ligne ne semble pas se rafraîchir ... Y at-il quelque chose de mal dans mon code?timertask ne fonctionne pas!
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: au lieu
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 i,, placez le TimerTask ailleurs dans mon code?
Avoir un thread exécuté dans onDraw est probablement l'une des pires approches de conception que j'ai jamais vues dans n'importe quelle langue dans n'importe quel projet. – Falmarri