キャンバスを使用してサーフェスビューにテキストを描画しようとしています。問題は、各呼び出しの後にサーフェスビューがリセットされていないように見えることです。以前に描画されたものはすべて、再度描画されます。したがって、描画するたびに位置を変更するテキストがある場合、キャンバスがクリアされていないため、そのテキストの長いトレースになってしまいます。
私は何が間違っているのですか?
public class Test1Activity extends Activity {
private Draw drawText;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawText = new Draw(this);
setContentView(drawText);
}
public class Draw extends SurfaceView implements Runnable {
Thread thread = null;
SurfaceHolder surfaceHolder;
volatile boolean running = false;
private int i;
public Draw(Context context) {
super(context);
// TODO Auto-generated constructor stub
surfaceHolder = getHolder();
running = true;
thread = new Thread(this);
thread.start();
}
public void run() {
// TODO Auto-generated method stub
while (running) {
if (surfaceHolder.getSurface().isValid()) {
Canvas canvas = surfaceHolder.lockCanvas();
Paint paint = new Paint();
paint.setColor(Color.RED);
i++;
if(i > 240)
i = 1;
canvas.drawText("Hello",i , 60, paint);
surfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
}
}
public class Test1Activity extends Activity {
private Draw drawText;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawText = new Draw(this);
setContentView(drawText);
}
public class Draw extends SurfaceView implements Runnable {
Thread thread = null;
SurfaceHolder surfaceHolder;
volatile boolean running = false;
private int i;
public Draw(Context context) {
super(context);
// TODO Auto-generated constructor stub
surfaceHolder = getHolder();
running = true;
thread = new Thread(this);
thread.start();
}
public void run() {
// TODO Auto-generated method stub
while (running) {
if (surfaceHolder.getSurface().isValid()) {
Canvas canvas = surfaceHolder.lockCanvas();
Paint paint = new Paint();
paint.setColor(Color.RED);
i++;
if(i > 240)
i = 1;
canvas.drawText("Hello",i , 60, paint);
surfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
}
ありがとう!