自定义选择器图像,在ListView中具有三种状态

时间:2015-06-08 09:39:45

标签: android listview

我需要一个ListView项目中的自定义选择器,可以单击三次。 首先单击显示图像1,第二次单击显示图像2,第三次单击显示图像3,第四次单击返回以显示图像1,依此类推。

实施此方法的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

这可以通过使用level-list drawable来完成。

使用您的图片在/res/drawable文件夹中创建一个可绘制的关卡列表。

  <level-list xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:maxLevel="0" android:drawable="@drawable/image_1" />
      <item android:maxLevel="1" android:drawable="@drawable/image_2" />
      <item android:maxLevel="2" android:drawable="@drawable/image_3" />
     </level-list>
  • 将此drawable设置为图像视图的背景。
<ImageView
        android:id="@+id/iv_selector"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:src="@drawable/level_selector"
        />

为drawable添加单击侦听器并更新图像级别

public void onCLick(View view) {<br>
                   LevelListDrawable levelListDrawable = (LevelListDrawable) imageView.getDrawable();<br>
               int level = levelListDrawable.getLevel();
               level = level + 1;<br>
               level = level % 3;<br>
               imageView.setImageLevel(level);<br>
           }