GridView и ListView подсветка выделенных пунктов

Интерфейс, диалоги, темы, стили, меню
Закрыто
Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

GridView и ListView подсветка выделенных пунктов

Сообщение neoksi » 20 авг 2012, 14:38

GridView и ListView при касании подсвечивают выделенный пункт оранжевым цветом, возможно изменить этот цвет на свой с помощью xml?
Последний раз редактировалось neoksi 30 авг 2012, 23:12, всего редактировалось 1 раз.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: GridView и ListView подсветка выделенных пунктов

Сообщение rezak90 » 20 авг 2012, 15:11

на счёт GridView не знаю, но в ListView уже подсказали есть setChoiceMode(int Color) , но я бы всё равно сделал бы по гибкому (хоть и с гемороем): в один xml-файл описать разметку ячейки при обычном состоянии, второй xml-файл описать разметку ячейки при нажатом состоянии, и третий xml-файл е сли надо с разметкой если выбрана ячейка, потом ещё четвёрный xml-файл-селектор где указаны при каких состояниях подгружать какой xml и подключить этот файл в адаптере ListView. Вот такой вот велосипед, зато красивый результат получится
R.id.team
Политика на форуме запрещена

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: GridView и ListView подсветка выделенных пунктов

Сообщение neoksi » 21 авг 2012, 04:24

rezak90, с ячейками это заманчиво, думаю сработает и в GridView и в ListView, но при этом, при скролинге этих элементов, нижнее и верхнее затемнение останутся с оранжевым отливом =(.

Пробовал в xml прописать для GridView свойство ChoiceMode (не помню как точно там строка пишется), цвет менялся, но при этом терялись отступы между ячейками.

math64
Сообщения: 235
Зарегистрирован: 16 июл 2012, 07:47

Re: GridView и ListView подсветка выделенных пунктов

Сообщение math64 » 22 авг 2012, 13:33

Нужно установить свой listSelector. Будет подсвечивать при касании, но при отпускании подсветка будет пропадать.

Код: Выделить всё

<GridView android:listSelector="@drawable/grid_selector" android:drawSelectorOnTop="true"/>
grid_selector.xml:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_focused="true" android:state_pressed="false"
        android:drawable="@drawable/grid_selector_focus" />
    <item android:state_focused="true" android:state_pressed="true"
        android:drawable="@drawable/grid_selector_pressed" />
    <item android:state_focused="false" android:state_pressed="true"
        android:drawable="@drawable/grid_selector_pressed" />
</selector>
grid_selector_focus.xml:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <corners android:radius="2dip" />
    <stroke
        android:width="1dip"
        android:color="#FF8000" />
    <solid android:color="#00000000"/>
</shape>
grid_selector_pressed.xml:

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <corners android:radius="2dip" />
    <stroke
        android:width="1dip"
        android:color="#FF0000" />
    <solid android:color="#00000000"/>
</shape>
Последние два файла можно заменить на .9.png (но тогда нужно делать набор под разные разрешения)

k.chaiko
Сообщения: 21
Зарегистрирован: 02 авг 2012, 17:23

Re: GridView и ListView подсветка выделенных пунктов

Сообщение k.chaiko » 22 авг 2012, 21:25

neoksi писал(а):rezak90, с ячейками это заманчиво, думаю сработает и в GridView и в ListView, но при этом, при скролинге этих элементов, нижнее и верхнее затемнение останутся с оранжевым отливом =(.

Пробовал в xml прописать для GridView свойство ChoiceMode (не помню как точно там строка пишется), цвет менялся, но при этом терялись отступы между ячейками.
Помоему что-то похожее было, пропишите для списка метод setCacheColorHint(Color.Transparent), это из кода, можно в xml это сделать, там есть аткой атрибут у ListView..
Может я неправильно вас понял..

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: GridView и ListView подсветка выделенных пунктов

Сообщение neoksi » 30 авг 2012, 23:12

math64 писал(а):...
Последние два файла можно заменить на .9.png (но тогда нужно делать набор под разные разрешения)
math64, огромное спасибо, очень помог.
.9.png - я не сторонник использования готовой графики, лучше прописать в xml, меньше мороки с масштабированием.

Закрыто