是否可以在ActionBar上使用TransitionDrawable?

时间:2012-10-16 10:44:46

标签: android android-actionbar android-animation transitiondrawable

我正在尝试使用TransitionDrawable在操作栏上执行一些颜色动画。

我正在尝试的代码非常简单,在onCreate期间,我将转换drawable作为操作栏背景:

Drawable d = getResources().getDrawable(R.drawable.actionbar);
actionbarDrawable = new TransitionDrawable(new Drawable[] { d, d });
getActionBar().setBackgroundDrawable(actionbarDrawable);

然后在事件上我替换了TransitionDrawable的第二个drawable并要求为它设置动画。

    actionbarDrawable.setDrawableByLayerId(1, d);
    actionbarDrawable.startTransition(666);

我在我的活动上的RelativeLayout上尝试了相同的代码,它似乎工作得很好,为什么ActionBar不想合作以及如何让它工作的任何想法?

感谢。

1 个答案:

答案 0 :(得分:5)

试一试:

在values / string中:

<color name="blue">#FF4682B4</color>
<color name="red">#FFC30F0F</color>

在你班上:

ColorDrawable blue = new ColorDrawable(getResources().getColor(R.color.blue));
ColorDrawable red = new ColorDrawable(getResources().getColor(R.color.red));
ColorDrawable[] color = {blue, red}; 
TransitionDrawable trans = new TransitionDrawable(color);
actionBar.setBackgroundDrawable(trans);
trans.startTransition(500);