为什么TransitionDrawable不能使用不同的alpha?

时间:2015-07-13 22:58:35

标签: android

我试过这个:

int firstColor = 0xFFFF0000; // red
int secondColor = 0x00FFFFFF; // transparent
Drawable[] drawables = new Drawable[] { new ColorDrawable(firstColor), new ColorDrawable(secondColor) };
TransitionDrawable d = new TransitionDrawable(drawables);
getSupportActionBar().setBackgroundDrawable(d);
d.startTransition(300);

什么都不会改变。

我添加了Window.FEATURE_ACTION_BAR_OVERLAY

但是,如果我使用它:

getSupportActionBar().setBackgroundDrawable( new ColorDrawable(secondColor) );

它起作用,动作栏是半透明的,但我想通过过渡来做到这一点。

我可以这样做吗?

1 个答案:

答案 0 :(得分:1)

您可以使用CrossFade处理透明的Drawable和颜色。

TransitionDrawable d = new TransitionDrawable(drawables);

d.setCrossFadeEnabled(true); // Add this code just after creating TransitionDrawable

getSupportActionBar().setBackgroundDrawable(d);
d.startTransition(300);