Android 我需要推迟在画布上画画
这方面我是新手。试着做我的第一场比赛。我需要将透明PNG延迟到我的画布上,但似乎无法正确完成Android 我需要推迟在画布上画画,android,Android,这方面我是新手。试着做我的第一场比赛。我需要将透明PNG延迟到我的画布上,但似乎无法正确完成 public LessonsMain(Context context) { super(context); // TODO Auto-generated constructor stub mFujiSensei = getResources().getDrawable(R.drawable.old_man_fuji); mFujiSensei.setBou
public LessonsMain(Context context) {
super(context);
// TODO Auto-generated constructor stub
mFujiSensei = getResources().getDrawable(R.drawable.old_man_fuji);
mFujiSensei.setBounds(0,0,mFujiSensei.getIntrinsicWidth(),mFujiSensei.getIntrinsicHeight());
mBackground = getResources().getDrawable(R.drawable.lessons_background);
mBackground.setBounds(0,0,mBackground.getIntrinsicWidth(),mBackground.getIntrinsicHeight());
}
@Override
protected void onDraw(final Canvas canvas) {
super.onDraw(canvas);
mBackground.draw(canvas);
TimerTask task = new TimerTask() {
public void run(){
mFujiSensei.draw(canvas);
}
}; timer.schedule(task, 3000);
}
对不起,我还是不明白。我试着换一种思路,但还是不行
public class LessonsMain extends View{
Drawable mBackground;
Drawable mFujiSensei;
Timer timer;
Handler handler;
Runnable runnable;
public LessonsMain(Context context) {
super(context);
// TODO Auto-generated constructor stub
mFujiSensei = getResources().getDrawable(R.drawable.old_man_fuji);
mFujiSensei.setBounds(0,0,mFujiSensei.getIntrinsicWidth(),mFujiSensei.getIntrinsicHeight());
mBackground = getResources().getDrawable(R.drawable.lessons_background);
mBackground.setBounds(0,0,mBackground.getIntrinsicWidth(),mBackground.getIntrinsicHeight());
}
@Override
protected void onDraw(final Canvas canvas) {
super.onDraw(canvas);
mBackground.draw(canvas);
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
TimerTask task = new TimerTask() {
public void run(){
mFujiSensei.draw(canvas);
}
}; timer.schedule(task, 3000);
}
}).start();
}
}这里的问题是,当timerTask执行时,它不再位于UI线程上,因此无法更新视图。您需要做的是向处理程序发送邮件,以便在UI线程上进行绘制。查看有关从计时器更新UI的详细说明