更改可展开列表视图的图标

时间:2013-09-08 14:37:01

标签: android android-listview expandablelistview

我想更改可展开列表视图的展开和默认图标。 我做了一些研究如何做到这一点并找到了this question

我想我就是按照那里描述的那样做的。 我有2个图标,第一个叫做defaulticon.png,第二个叫expandicon.png。麻烦位于drawable文件夹中(不在drawable-hdpi中)。 我的列表视图声明如下所示:

<ExpandableListView
        android:id="@+id/expandableListView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:groupIndicator="@drawable/groupindicator">
    </ExpandableListView>

groupindicator是一个xml文件,也位于drawable文件夹中,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/defaulticon" android:state_empty="true"/>
   <item android:drawable="@drawable/expandedicon" android:state_expanded="true"/>
</selector>

然而,图标不会改变。列表视图中的默认图标消失,而没有图标。 资源是否有任何限制(资源有多大(两者都是160x160),它们必须位于哪里,......)。 我在运行Android 4.1.2的S3上测试应用程序。

干杯

2 个答案:

答案 0 :(得分:6)

将图标大小更改为32 X 32,将图标放在drawable-mdpi中,然后尝试使用此代码

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:drawable="@drawable/expandedicon" android:state_expanded="true"/>
       <item android:drawable="@drawable/defaulticon"/>
    </selector>

答案 1 :(得分:-1)

首先,将图片大小调整为24 * 24,然后将其复制到Android中的drawable-mdpi文件夹。之后,复制并粘贴此代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
  <item android:drawable="@drawable/abc"android:state_empty="true"></item>
  <item android:drawable="@drawable/downarrow" ></item>
</selector>