2011-05-30 17 views
7

ExpandableListView için gösterge olarak kendi simge resmimi kullanıyorum, ancak simge gerilmiş gibi görünüyor, görüntü dosyasını/drawable ve/drawable-hdpi'ye şanssız bırakmaya çalıştım. Kendi simgemi kullanmazsam, yerleşik Android uygulaması güzel görünüyor, bu yüzden görüntü boyutunda herhangi bir kısıtlama var mı, yoksa yanlış yaptığım bir şey var mı?Android ExpandableListView göstergesi/simge her zaman gergin

Teşekkürler!

cevap

17

group_indicator.9.png

(muhtemelen şeffaf olabilir). Görüntünün ortadan gerilmesini engeller.

+0

çalışmaz .... 9 yama görüntüsünü ayarladığımızda hiçbir değişiklik yok ..... Uyguladığım tek bir çözüm, aynı yüksekliğin ok görüntüsünü, bulunduğu yerin arka planıyla aynı yapmasıdır .... – Jayesh

+0

Simgenin boyutu nedir? –

+0

@PavanKumar, ihtiyacınız olan büyüklüğe bağlıdır. :) –

6

Genişletilebilir liste bir acıdır. Her zaman simgeleri uzatır. Kolay bir çözüm, hem üstte hem de altta sadece gerilebilir bir piksel içeren dokuz yamalı görüntüyü kullanmaktır. Böylece sadece iki piksel gerilir ve görüntünüzün geri kalanı modifiye edilmez.

umut Bu mantıklı bunu bir 9 yama (xxx.9.png) resim yapmak ve sınır piksel etrafında onun gerilebilir alanlarını ayarlamak, grubunuz göstergesi olarak kullanıyor olursa olsun görüntü

+0

"sadece her iki üst ve alt bir gerilebilir piksel", bu sağ/sol üzerinde hiçbir gerilebilir piksel var demektir? – hzxu

+0

ayrıca, simgelerin içinde bir üçgen bulunan sağlam bir daire var, bunu dokuz yama olmak için imkansız gibi görünüyor. – hzxu

+0

Kendi simgemi kullanmadığımda, Android'in yerleşik simgesi uzatılmıyor, bu yüzden sorunu çözmenin bir yolu var. Bir örnek görmek için – hzxu

7

Bunu kodlama yoluyla, farklı bir resim kullanmadan yapmak isterseniz, işte bu şekilde çalışıyorum.

(1) grup göstergesi null Ayar

(2) grubunda Düzeni benim özel grup göstergesi dahil.

(3) Durumunuzu değiştiren groupClickListener10'a sahip olmak.

Kod Parçaları:

(1) mListView.setGroupIndicator(null);

(2) grup düzeninde benim göstergesini Dahil.

<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; 
    } 
});