如果我想在那里放一个null,我需要输入什么属性?
例如,这段代码:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/ef_gradient_blue" />
<item android:drawable="@null" />
</transition>
但这不起作用,因为我的应用程序在尝试加载此drawable时崩溃了。我需要它为null,因此它可以从完全不透明转换为完全透明。
在我的Java中,我加载它:
mTransitionBlue = (TransitionDrawable)mProjectResources.getDrawable(R.drawable.transition_blue);
但是我从中得到了一个运行时异常,说它找不到transition_blue.xml,这是之前指定的XML。那么我该如何实现呢?
答案 0 :(得分:23)
你应该在那里使用透明drawable(android lib预定义了它):
<transition xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/ef_gradient_blue" />
<item android:drawable="@android:color/transparent" />
</transition>
@android:color/transparent
的值为#00000000
。将前两位数字设为0非常重要,因为它们定义了颜色的alpha值(其余为红色,绿色和蓝色)。
所以你可以使用
<item android:drawable="#00000000" />
,或者在你的颜色中重新定义它。
如需参考,您可以查看Android开发者2D Graphics
和Transition Drawables
文章。