java - 如何在 Android/Java 中循环显示背景颜色?

标签 java android colors animated

我有一个十六进制颜色列表,每种颜色的持续时间以毫秒为单位。我想在持续时间内用每种颜色填充屏幕,然后转到下一种颜色。

我尝试遍历颜色以执行以下操作:

 myView.setBackgroundColor(Color.parseColor( theColor ));
 SystemClock.sleep( theDuration );

 myView.setBackgroundColor(Color.parseColor( nextColor ));
 SystemClock.sleep( nextDuration );

 etc...

这对我来说似乎很明显,但在运行时对 View 没有任何影响,至少在我的 AVD 中是这样。我了解到这是因为 Android 仅在预定义的时间绘制。 (我也试过调用“Invalidate()”,但没有成功。)

连续显示所有颜色的最佳方式是什么?

(我意识到我也不应该调用 sleep(),所以对此的任何建议也将不胜感激。)

谢谢。

最佳答案

new Thread() {
    @Override
    public void run() {
        YourActivity.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            myView.setBackgroundColor(Color.parseColor( theColor ));
        }
        Thread.sleep( theDuration);

        YourActivity.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            myView.setBackgroundColor(Color.parseColor( nextColor ));
        }
        Thread.sleep( nextDuration );
    }
}.start();

把它放在一个方法中并调用它。

关于java - 如何在 Android/Java 中循环显示背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565318/

相关文章:

java - Aerospike : Does Java Client support mulitple filters on secondary indexes?

java - 多次导入相同的 spring 应用程序上下文文件

java - Java Hadoop Mapper 如何发送多个值

java - 在带有 CDT 的 eclipse 插件中使用自己的 CodeFormatter

java - 清除 Activity 堆栈

CSS 和 .less : Set a font color if user pick a specific color through web interface

java - 无法打开日志设备 '/dev/log/main' : Permission denied

java - 条目 fakeoutputdirectory=null 中出现错误 null 值?

Jquery 太多递归错误

xcode - 在 xcode 颜色 Assets 中按十六进制代码搜索颜色