首页 > 解决方案 > Android使其他类的视图无效

问题描述

我有两个类 MyView 和 MyThread 并且想从 MyThread 类中的计时器每隔几毫秒重新绘制一次视图。计时器开始运行,但我的视图不会被重新绘制,我不明白为什么。这是我的代码:

我的观点:

public class MyView extends SurfaceView{


private MainActivity mainActivity;
private Random random = new Random();

public MyView(Context context) {
super(context);
mainActivity = (MainActivity)context;
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    setBackgroundColor(Color.argb(random.nextInt(255),random.nextInt(255),
            random.nextInt(255),random.nextInt(255)));
  }
} 

我的线程:

 public class MyThread implements SurfaceHolder.Callback {

private Timer timer = new Timer();
private MainActivity mainActivity;
private MyView myView;

public MyThread(Context context) {
   mainActivity = (MainActivity) context;
   myView = new MyView(context);
   timer.schedule(new TimerThread(),50,50);
}

class TimerThread extends TimerTask {

    @Override
    public void run() {
        mainActivity.runOnUiThread(new TimerTask() {
            @Override
            public void run() {
                Log.v("Log","Timer run");
                myView.setBackgroundColor(Color.RED);
                myView.invalidate();
            }
        });
    }
}

任何帮助,将不胜感激。

标签: javaandroid

解决方案


推荐阅读