如何为Android指定null作为XML属性?

时间:2011-05-18 09:18:22

标签: android

如果我想在那里放一个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。那么我该如何实现呢?

1 个答案:

答案 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 GraphicsTransition Drawables文章。