【问题标题】:Transition Drawable - 3 options过渡 Drawable - 3 个选项
【发布时间】:2015-12-20 22:04:34
【问题描述】:

我想在 3 个可绘制对象之间更改按钮的样式:“正常”、“绿色”和“红色”。我使用了 TransitionDrawable,但它只适用于 2 层。

<transition xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:drawable="@drawable/button" />
     <item android:drawable="@drawable/buttongreen" />
</transition>

我将如何实现另一个“android:drawable”,或者除了TransitionDrawable,还有其他方法可以实现吗?如何根据输入在可绘制对象之间切换(0 - 代表红色,1 - 代表绿色)?

【问题讨论】:

    标签: android android-layout android-drawable transitiondrawable


    【解决方案1】:

    TransitionDrawable 的构造函数采用一个数组,根据文档,该数组可能包含两个以上的可绘制对象

    public TransitionDrawable(可绘制[]层)

    在 API 级别 3 中添加
    使用 指定的图层列表。为此,至少需要 2 层 可绘制以正常工作。

    虽然我没有使用过这个类,所以万一它不起作用,你可以设置两个TransitionDrawables,一个用于从颜色A到B的过渡,另一个用于B 到 C。然后你必须在第一个结束后的第二个转换中调用 start,它看起来就像是从 A 到 B 到 C 的转换。

    【讨论】:

      【解决方案2】:

      此时你不能有超过 2 层。

      所以,我是这样做的:

      myView.setBackgroundResource(R.drawable.transition_drawable_green_yellow);
      TransitionDrawable transition = (TransitionDrawable) myView.getBackground();
      transition.startTransition(2000);
          
      new Handler().postDelayed(new Runnable() {
          @Override
          public void run() {            
            
      myView.setBackgroundResource(R.drawable.transition_drawable_yellow_red);
      TransitionDrawable transition = (TransitionDrawable) myView.getBackground();
      transition.startTransition(2000);
           }
      }, 2000);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-05
        • 1970-01-01
        • 1970-01-01
        • 2015-04-04
        相关资源
        最近更新 更多