Какое значение по умолчанию доступно для нажатия элемента списка

Когда пользователь нажимает элемент ListView (android: state_pressed = "true" ), он мигает желтым оттенком (или вы можете нажать и удерживать).

Какое это возможно? Я создал свой собственный селектор, потому что мне нужен собственный цвет элемента ListView, но я теряю нажатый цвет.

Там есть документ Android о кнопках скинов, которые ссылаются на # ffff0000, но это создает красный цвет.

Кто-нибудь знает, что это такое и как ссылаться на него?

Ответ 1

Системные ресурсы по умолчанию можно найти в <android-sdk>/platforms/android-<version>/data/res. В частности, селектор списка определен в drawable/list_selector_background.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_window_focused="false"
        android:drawable="@color/transparent" />

    <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
    <item android:state_focused="true" android:state_enabled="false"
        android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_disabled" />
    <item android:state_focused="true" android:state_enabled="false"
        android:drawable="@drawable/list_selector_background_disabled" />

    <item android:state_focused="true" android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_transition" />
    <item android:state_focused="false" android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_transition" />

    <item android:state_focused="true"
        android:drawable="@drawable/list_selector_background_focus" />

</selector>

Вывод, который отображается на прессе, list_selector_background_transition, - это не один цвет, а два изображения с 9 патчами, желтый и белый, с анимированным переходом между ними.

<transition xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:drawable/list_selector_background_pressed"  />
    <item android:drawable="@android:drawable/list_selector_background_longpress"  />
</transition>

Ответ 2

То, о чем вы говорите, это встроенный селектор Android OS.

Сделайте свой собственный ярлык с xml файлом в вашей папке с рисунком:

<?xml version="1.0" encoding="utf-8"?>
  <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
  <item android:state_pressed="true" android:color="#YOURCOLOR" /> 
  <item android:color="#FE896F" /> 
</selector>

Затем в вашем XML файле у вас есть свой ListView.

android:textColor="@drawable/highlight" //For text to appear like YOURCOLOR
//or if you wish the background
android:background="@drawable/highlight" //For the background to appear like YOURCOLOR

Я надеюсь, что это все и скажите, если это сработало или нет!

Ответ 3

Цвет определяется как #AARRGGBB, где AA представляет значение альфа (прозрачности), RR - количество красного, GG - зеленое, а BB - количество синего. Таким образом, # ffff0000 является сплошным и все красным. Если вы хотите оранжевый, вы хотите добавить зеленый, то есть: # ffffA500. Google для значений цвета RGB, чтобы увидеть страницы цветов с их значениями rgb.

Ответ 4

Я использовал инструмент выбора цвета в приложении для редактирования фотографий, чтобы найти внешний и внутренний цвета градиента и сделал свой собственный.

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#ffb300"
        android:centerColor="#ffc800"
        android:endColor="#ffb300"
        android:angle="270"/>
</shape>