Цвет селектора на LinearLayout - PullRequest
8 голосов
/ 29 июля 2011

Я пытаюсь выделить селектор цвета для расширенного класса LinearLayout, поэтому я думаю, что все равно, что говорить о linearLayout.

Я следовал инструкциям на этом посте, ответ говорил о фигурах.

Теперь у меня есть 3 xml на папках drawables:

файл normal.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="rectangle" >
  <solid android:color="#ffffffff" />
</shape>

файл selected.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
   <solid android:color="#00000000" />
</shape>

и, наконец, файл bg.xml

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

Я обращаюсь к этому следующим образом:

    Drawable d = getResources().getDrawable(context.getResources().getIdentifier("mypackageuri.tProject:drawable/bg", null, null));
    view.setBackgroundDrawable(d);

"Нормальное" состояние в порядке, с цветом, установленным в "normal.xml", но никак не с остальными, я нажимаю на свое изображение, и ничего не происходит, это никак не меняет цвет ...

Я не вижу, что я делаю неправильно ...

Спасибо

1 Ответ

22 голосов
/ 29 июля 2011

Ваш вид должен быть кликабельным, чтобы получить состояние pressed при нажатии на него. Использование:

    view.setClickable(true);

или в макете xml:

    android:clickable="true"
...