I have group indication with small icon, and i use groupIndicator to call the selector to draw it but I see android by default stretch that icon to fits the text size
It is the implementation for indicator icon on right side in Expandable List View. It is working for me.
<ExpandableListView
android:id="@+id/expandlv"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:dividerHeight="2dp"
android:groupIndicator="@drawable/group_indicator"
android:divider="@andorid:color/white"/>
group_indicator.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--<item android:state_empty="true" android:drawable="@drawable/expanded_icon" />-->
<!--<item android:state_expanded="true" android:drawable="@drawable/collapsed_icon" />-->
<!--<item android:drawable="@drawable/expanded_icon"/>-->
<item android:state_empty="true">
<layer-list>
<item
android:left="0dp"
android:right="3dp"
android:top="20dp"
android:bottom="20dp"
android:drawable="@drawable/expanded_icon">
</item>
</layer-list>
</item>
<item android:state_expanded="true">
<layer-list>
<item
android:left="0dp"
android:right="3dp"
android:top="20dp"
android:bottom="20dp"
android:drawable="@drawable/collapsed_icon">
</item>
</layer-list>
</item>
</selector>
In java source code,
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
expListView.setIndicatorBounds(width - GetDipsFromPixel(30), width - GetDipsFromPixel(6));
expListView.setAdapter(listAdapter);