延迟改变颜色

Mat*_*anb 0 java android loops delay

我想在按下按钮时更改textview的背景颜色.它应该这样做:首先是白色10毫秒,然后只是常规颜色.是否有某种延迟功能或者我是否需要使用循环或某种类型编写我自己的函数?任何提示非常感谢:)

这一刻我只是用

button.setBackgroundColor(Color.parseColor("#ffa500"));
Run Code Online (Sandbox Code Playgroud)

Bud*_*ius 6

每个视图都有postpostDelayed方法分别将一个runnable发布到UI线程或发布延迟它.

    button.postDelayed(new Runnable() {

    @Override
    public void run() {
    // change color in here
    }
}, 10);
Run Code Online (Sandbox Code Playgroud)

编辑: 如果你经常打电话给这个,你可以用这样的东西做得更好:

int currentColor;
private Runnable changeColorRunnable = new Runnable() {

    @Override
    public void run() {
        switch(currentColor){
        case Color.RED: currentColor = Color.BLACK; break;
        case Color.BLACK: currentColor = Color.RED; break;
        }
        button.setBackgroundColor(currentColor);

    }
};
Run Code Online (Sandbox Code Playgroud)

然后:

    button.postDelayed(changeColorRunnable, 10);
Run Code Online (Sandbox Code Playgroud)

这样可以避免不必要的对象创建和垃圾回收