Android LevelListDrawable具有空的案例

Android LevelListDrawable具有空的案例,android,xml,android-drawable,xml-drawable,Android,Xml,Android Drawable,Xml Drawable,在Android中,是否可以给LevelListDrawable一个空的案例?“空”就像“没有图像”。例如,看看下面的LevelListDrawable: <?xml version="1.0" encoding="utf-8"?> <level-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@

在Android中,是否可以给LevelListDrawable一个空的案例?“空”就像“没有图像”。例如,看看下面的LevelListDrawable:

<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android" >        
    <item
        android:drawable="@drawable/face_1"
        android:maxLevel="1" />
    <item
        android:drawable="@drawable/face_2"
        android:maxLevel="2" />
    <item
        android:drawable="@drawable/face_3"
        android:maxLevel="3" />
    <item
        android:drawable="@drawable/face_4"
        android:maxLevel="4" />
    <item
        android:drawable="@drawable/face_5"
        android:maxLevel="5" />
    <item
        android:drawable="@drawable/face_6"
        android:maxLevel="6" />
</level-list>

但在此之后,我必须调用
image.setImageDrawable(getResources().getDrawable(R.drawable.dice))另一次,而不是更改图像级别。谢谢。

minLevel
默认为
0
,因此,如果要将
face\u 1
排除在
level=0
的显示之外,请明确添加它

<item
     android:drawable="@drawable/face_1"
     android:minLevel="1"
     android:maxLevel="1" />
但这可能会从
LevelListDrawable#充气
引发NPE或异常:

标记需要一个“drawable”属性或定义drawable的子标记


你应该为空的情况使用一个drawable,也许可以添加一个透明的drawable,而不是让drawable字段为空。是的,也许我会这样做。。。
ImageView image = new ImageView(context);
image.setImageDrawable(getResources().getDrawable(R.drawable.dice));
image.setImageLevel(3);
if(somethingHappened){
    image.setImageDrawable(null);
}
<item
     android:drawable="@drawable/face_1"
     android:minLevel="1"
     android:maxLevel="1" />
<item
    android:drawable="@null"
    android:maxLevel="0" />