独自のアイコン画像を ExpandableListView のインジケーターとして使用していますが、アイコンが引き伸ばされているようです。画像ファイルを /drawable および /drawable-hdpi に配置しようとしましたが、うまくいきませんでした。自作のアイコンを使わないとAndroid内蔵のアイコンが綺麗に見えるので、画像のサイズに制限があるのかな?
ありがとう!
独自のアイコン画像を ExpandableListView のインジケーターとして使用していますが、アイコンが引き伸ばされているようです。画像ファイルを /drawable および /drawable-hdpi に配置しようとしましたが、うまくいきませんでした。自作のアイコンを使わないとAndroid内蔵のアイコンが綺麗に見えるので、画像のサイズに制限があるのかな?
ありがとう!
グループ インジケーターとして使用している画像が何であれ、それを 9 パッチ (xxx.9.png) 画像にし、その伸縮可能領域を境界ピクセルの周囲に設定します (おそらく透明である可能性があります)。途中から画像が伸びるのを防ぎます。
別の画像を使用せずにコーディングを介してこれをすべて実行したい場合、これが私がこれを機能させた方法です。
(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" />
(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;
}
});
拡張可能なリストは面倒です。常にアイコンを引き伸ばします。簡単な解決策は、上部と下部の両方に伸縮可能なピクセルのみを含む9つのパッチ画像を使用することです。したがって、これらの2つのピクセルのみが引き伸ばされ、画像の残りの部分は変更されません。
これが理にかなっていることを願っています