2011-05-30 10 views
7

私は自分自身のアイコンイメージをExpandableListViewのインジケータとして使用していますが、アイコンが伸びているようですが、画像ファイルを/ drawableと/ drawable-hdpiに入れようとしました。私自身のアイコンを使用しないと、組み込みのAndroidの画像が見た目がいいので、画像のサイズに制限があるのだろうか、間違っていたのでしょうか?Android ExpandableListViewインジケータ/アイコンは常に伸びています

ありがとうございます!

答えて

17

group_indicator.9.png

(おそらく透明かもしれません)。真ん中からのイメージの伸びを防ぎます。

+0

それは動作していません.... 9パッチ画像を設定すると変更はありません..... 私が適用する1つのソリューションは、表示する場所の背景と同じ高さの矢印画像を作ることです.... 。 – Jayesh

+0

アイコンのサイズは? –

+0

@PavanKumarそれはあなたが必要とするサイズに依存します。 :) –

6

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

希望このメイク感覚あなたはそれを9パッチ(xxx.9.png)画像を作成し、境界ピクセルの周りにその伸縮性の領域を設定し、あなたのグループの指標として使用しているものは何でも画像

+0

「のみの両方上下に伸縮画素」、それは左/右には伸縮性の画素が存在しない意味ですか? – hzxu

+0

また、私のアイコンは内側に三角形の丸い円で、これを9パッチにすることは不可能です。 – hzxu

+0

自分のアイコンを使用しないときは、Androidの内蔵アイコンは伸びていないので、問題を解決する方法があると思います。 – hzxu

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; 
    } 
}); 
関連する問題