Android 我需要推迟在画布上画画

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

这方面我是新手。试着做我的第一场比赛。我需要将透明PNG延迟到我的画布上,但似乎无法正确完成

    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的详细说明