模拟按钮android的闪烁

时间:2015-09-14 18:53:02

标签: android timer

我想让我的按钮在两种颜色之间切换三次背景颜色 - btn_tp_dark btn_tp_light

    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        private View Button;
        public void run() {
            Button = (View) findViewById(R.id.filmTransparent11);
            Button.setBackgroundResource(R.drawable.btn_tp_dark);
        }
    }, 300);

应该模拟闪烁效果,但我不知道如何实现这一点。

 <Button
            android:id="@+id/filmTransparent11"
            android:layout_width="match_parent"
            android:layout_height="0dip"
            android:layout_weight="11"
            android:background="#00000000"
            android:onClick="next1" />

2 个答案:

答案 0 :(得分:1)

不要在android中使用Timer。而是使用Handler

您可以像这样创建一个循环任务:

final Button button = (View) findViewById(R.id.filmTransparent11);
final Handler handler = new Handler();
final Runnable changeBackground = new Runnable() {
  private int i;
  @Override
  public void run() {
    // Set background based on task execution counter
    if (++i % 2 == 0) {
      button.setBackgroundResource(R.drawable.btn_tp_light);
    } else {
      button.setBackgroundResource(R.drawable.btn_tp_dark);
    }

    // Repeat task
    handler.postDelayed(this, 300);
  }
};

// Initiate the task
handler.postDelayed(changeBackground, 300);

答案 1 :(得分:0)

实现它的一种方法是使用ValueAnimatorArgInterpolator。动画的持续时间为300毫秒,您可能希望使用ValueAnimator.INFINITEValueAnimator.REVERSE作为重复模式