Android ExpandableListView индикатор / значок всегда растянут - PullRequest
7 голосов
/ 30 мая 2011

Я использую свое собственное изображение значка в качестве индикатора для ExpandableListView, но значок кажется растянутым, я попытался поместить файл изображения в / drawable и / drawable-hdpi, но безуспешно. Если я не использую свой собственный значок, встроенный Android выглядит хорошо, поэтому мне интересно, есть ли какие-либо ограничения на размер изображения или я что-то не так сделал?

Спасибо!

Ответы [ 3 ]

17 голосов
/ 29 августа 2012

group_indicator.9.png

Независимо от того, какое изображение вы используете в качестве индикатора группы, сделайте его изображением в 9 патчей (xxx.9.png) и установите его растягиваемые области вокруг пикселей границы (которые, вероятно, могут бытьпрозрачный).Это предотвратит растяжение изображения от середины.

7 голосов
/ 25 марта 2014

Если вы хотите сделать все это с помощью кодирования, не используя другое изображение, вот как я это сделал.

(1) Установка индикатора группы на ноль

(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;
    }
});
6 голосов
/ 30 мая 2011

Расширяемый список - это боль. Всегда растягивает иконки. Простым решением является использование девяти патчей изображений, которые содержат только растягиваемый пиксель как сверху, так и снизу. Таким образом, растягиваются только эти два пикселя, а остальное изображение остается неизменным.

надеюсь, что это имеет смысл

...