Android ExpandableListView指标/图标始终拉伸

我使用我自己的图标图像作为ExpandableListView的指示器,但图标似乎被拉伸,我试图把图像文件放在/ drawable和/ drawable-hdpi没有运气。 如果我不使用自己的图标,那么内置的Android图标看起来不错,所以我不知道图像尺寸是否有任何限制,或者我做了什么错误?

谢谢!

Solutions Collecting From Web of "Android ExpandableListView指标/图标始终拉伸"

group_indicator.9.png

无论你使用什么图像作为你的组指标,使它成为9 patch(xxx.9.png)图像,并将其可伸缩区域设置为围绕边界像素(可能是透明的)。 这将防止从中间拉伸形象。

如果你想通过编码来做到这一点,而不使用不同的图像,这是我如何得到这个工作。

(1)将组指示符设置为空

(2)将我的自定义组指标包含在组布局中。

(3)有一个groupClickListener改变你的状态指标。

代码片段:

(1) mListView.setGroupIndicator(null);

(2)将我的指标包含在组布局中。

  <ImageView android:id="@+id/help_group_indicator" android:layout_width="@dimen/help_group_indicator_dimension" android:layout_height="@dimen/help_group_indicator_dimension" android:layout_marginTop="@dimen/help_group_indicator_dimension" android:src="@drawable/down_icon" /> 

(3)

 mListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View clickedView, int groupPosition, long rowId) { ImageView groupIndicator = (ImageView) clickedView.findViewById(R.id.help_group_indicator); if (parent.isGroupExpanded(groupPosition)) { parent.collapseGroup(groupPosition); groupIndicator.setImageResource(R.drawable.down_icon); } else { parent.expandGroup(groupPosition); groupIndicator.setImageResource(R.drawable.up_icon); } return true; } }); 

可扩展列表是一个痛苦。 它总是延伸图标。 一个简单的解决scheme是使用九个补丁图像,只包含顶部和底部的可伸缩像素。 因此只有这两个像素被拉伸,其余的图像保持不变。

希望这是有道理的