不断更改android按钮颜色

时间:2015-09-05 12:31:22

标签: android eclipse button colors

我的应用程序中有一个简单的按钮 我想做以下事情:
当应用程序运行时,按钮的颜色不断变化(例如每3秒),没有任何触摸或聚焦,以吸引客户的眼睛点击它。
有没有办法做到这一点?

3 个答案:

答案 0 :(得分:3)

使用以下代码:

Handler handler = new Handler();
Runnable runnable = new Runnable() {
  @Override 
  public void run() 
  {
     int rnd = (int)(Math.random() * 4);
     if(rnd==0)
        btn.setBackgroundColor(Color.BLUE);
     if(rnd==1)
        btn.setBackgroundColor(Color.RED);
     if(rnd==2)
        btn.setBackgroundColor(Color.GREEN);
     if(rnd==3)
        btn.setBackgroundColor(Color.YELLOW);

     btn.invalidate();
     handler.postDelayed(runnable, 3000);
   }
};
handler.postDelayed(runnable, 3000);

答案 1 :(得分:0)

重复颜色 -

Button btn = (Button) findViewById(R.id.btn);
Handler handler = new Handler();

final Runnable r = new Runnable() {
public void run() {
    int i = 0;
    if (i == 0) {
    btn.setBackgroundColor(Color.YELLOW);
    i++;
    } else if (i == 1) {
    btn.setBackgroundColor(Color.RED);
    i++;
    } else if (i == 2) {
    btn.setBackgroundColor(Color.BLUE);
    i++;
    } else if (i == 3) {
    btn.setBackgroundColor(Color.GREEN);
    i = 0;
    }
    handler.postDelayed(this, 3000); // Set time in milliseconds
}
};

handler.postDelayed(r, 3000); // Set time in milliseconds

此代码按此顺序每3秒更改一次按钮的颜色 - 黄色,红色,蓝色,绿色。

对于RANDOM颜色 -

Button btn = (Button) findViewById(R.id.btn);
Handler handler = new Handler();

final Runnable r = new Runnable() {
public void run() {
    int i = (int) Math.random() * 3;
    if (i == 0) {
    btn.setBackgroundColor(Color.YELLOW);
    } else if (i == 1) {
    btn.setBackgroundColor(Color.RED);
    } else if (i == 2) {
    btn.setBackgroundColor(Color.BLUE);
    } else if (i == 3) {
    btn.setBackgroundColor(Color.GREEN);
    }
    handler.postDelayed(this, 3000); // Set time in milliseconds
}
};

handler.postDelayed(r, 3000); // Set time in milliseconds

如果您喜欢这个答案,请将其标记为selected

答案 2 :(得分:0)

在drawable xml文件中声明一个动画

 <?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/frame1" android:duration="50" />
<item android:drawable="@drawable/frame2" android:duration="50" />
<item android:drawable="@drawable/frame3" android:duration="50" />
etc...
</animation-list>

然后在代码中你可以写

imageView.setBackgroundResource(R.drawable.movie);
AnimationDrawable anim = (AnimationDrawable)   
imageView.getBackground();
anim.start();