没有maxLevel的LevelListDrawable

时间:2018-09-26 19:33:52

标签: android imageview

我有两个图像-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为非零时,它不能工作。

任何帮助将不胜感激。

2 个答案:

答案 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>