设置android背景颜色异步

时间:2016-05-06 17:22:00

标签: android android-activity view background-color

我想更改活动的背景(或更简单的textview背景)async。

颜色应在间隔后改变(此处为500 MS)。我无法通过异步类访问视图或textview。

有没有办法做到这一点?

$

2 个答案:

答案 0 :(得分:2)

使用Activity.runOnUiThread

UI线程是唯一允许操作视图的线程。

或者,使用View.postDelayed

view.postDelayed(new Runnable() {
        int count = 0;
        @Override
        public void run() {
            //do something on UI thread
            if(count++ < 10) {
                view.postDelayed(this, 500);
            }
        }
    }, 500);

这会自动使用UI线程。

答案 1 :(得分:0)

尝试这种简单的方式而不是代码。像这样的东西

Handler handler = new Handler();

final Runnable r = new Runnable() {
public void run() {
    for(int i = 0; i < 10; ++i) {
            try {
                setColor(i*10,0,0);
                Thread.sleep(500)

            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

     }
};

将此行称为您要开始的地方

handler.postDelayed(r, 500);