7

独自のアイコン画像を ExpandableListView のインジケーターとして使用していますが、アイコンが引き伸ばされているようです。画像ファイルを /drawable および /drawable-hdpi に配置しようとしましたが、うまくいきませんでした。自作のアイコンを使わないとAndroid内蔵のアイコンが綺麗に見えるので、画像のサイズに制限があるのか​​な?

ありがとう!

4

3 に答える 3

17

group_indicator.9.png

グループ インジケーターとして使用している画像が何であれ、それを 9 パッチ (xxx.9.png) 画像にし、その伸縮可能領域を境界ピクセルの周囲に設定します (おそらく透明である可能性があります)。途中から画像が伸びるのを防ぎます。

于 2012-08-29T13:03:40.633 に答える
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" />

(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;
    }
});
于 2014-03-25T14:35:27.093 に答える
6

拡張可能なリストは面倒です。常にアイコンを引き伸ばします。簡単な解決策は、上部と下部の両方に伸縮可能なピクセルのみを含む9つのパッチ画像を使用することです。したがって、これらの2つのピクセルのみが引き伸ばされ、画像の残りの部分は変更されません。

これが理にかなっていることを願っています

于 2011-05-30T08:40:49.733 に答える