我有两个图像-image1和image2。我想使用'LevelListDrawable'根据特定计数显示它们中的任何一个。
如果count = 0,则显示image1;如果count> 0(可以是任何值),则显示image2。
我创建了以下可绘制的xml,
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0" android:drawable="@drawable/image1" />
<item android:minLevel="1" android:drawable="@drawable/image2" />
</level-list>
在布局xml中,
<ImageView
android:id="@+id/myImageView"
android:src="@drawable/level"/>
和代码中
myImageView.setImageLevel(count);
当count = 0时,它可以正常工作。但是当count为非零时,它不能工作。
任何帮助将不胜感激。
答案 0 :(得分:1)
与developer.android.com says一样,您应将android:maxLevel
属性用于所有项目,而将android:minLevel
属性用于第二个项目。
尝试像这样重构代码:
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0" android:drawable="@drawable/image1" />
<item android:maxLevel="1" android:drawable="@drawable/image2" />
</level-list>
答案 1 :(得分:0)
我将'10000'用作第二项的android:maxLevel
,其中10000是根据Drawable.setLevel(int)可以为android:maxLevel
设置的最大值
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0" android:drawable="@drawable/image1" />
<item android:maxLevel="10000" android:drawable="@drawable/image2" />
</level-list>