我使用自己的图标图像作为 ExpandableListView 的指示器,但图标似乎被拉伸了,我试图将图像文件放在 /drawable 和 /drawable-hdpi 中,但没有成功。如果我不使用自己的图标,内置的Android图标看起来不错,所以我想知道图像尺寸是否有任何限制,或者我做错了什么?
谢谢!
我使用自己的图标图像作为 ExpandableListView 的指示器,但图标似乎被拉伸了,我试图将图像文件放在 /drawable 和 /drawable-hdpi 中,但没有成功。如果我不使用自己的图标,内置的Android图标看起来不错,所以我想知道图像尺寸是否有任何限制,或者我做错了什么?
谢谢!
无论您使用什么图像作为组指示符,都将其设为 9 个补丁 (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;
}
});
可扩展的列表很痛苦。它总是拉伸图标。一个简单的解决方案是使用九个补丁图像,该图像在顶部和底部仅包含一个可拉伸像素。因此,只有这两个像素被拉伸,图像的其余部分保持不变。
希望这是有道理的