Android ExpandableListView指标/图标始终拉长

hzx*_*zxu 7 icons android stretch indicator expandablelistview

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

谢谢!

Him*_*ani 17

group_indicator.9.png

无论您使用什么图像作为组指示器,都要将其设置为9补丁(xxx.9.png)图像,并将其可伸展区域设置为边框像素周围(可能是透明的).它将防止图像从中间拉伸.


小智 7

如果你想通过编码完成所有这些,而不使用不同的图像,这就是我的工作方式.

(1)将组指示器设置为null

(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" />
Run Code Online (Sandbox Code Playgroud)

(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;
    }
});
Run Code Online (Sandbox Code Playgroud)


ome*_*ega 6

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

希望这是有道理的