2015-05-06 8 views
0

У меня есть настраиваемая форма для моего фона ListView. Но теперь он не изменит цвет при нажатии. Есть ли способ сделать это? Вот мой XML для ListView: Любой способ изменить цвет фона пользовательской формы при нажатии

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 

    android:textSize="25sp" 
    android:textColor="#ff8d8d8d"/> 
<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/textView" 
    android:layout_alignParentLeft="true" 
    android:textColor="#ff8d8d8d" 
    android:textSize="25sp" /> 
<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/textView1" 
    android:layout_alignParentRight="true" 
    android:textColor="#ff8d8d8d" 
    android:textSize="25sp" /> 

Вот CustomShape:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 

<gradient android:startColor="#ffffff" 
    android:endColor="#ffd6d4d6" 
    android:angle="270" 
/> 
<corners android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" 
    android:topLeftRadius="10dp" android:topRightRadius="10dp"/> 

ответ

2

Вы можете использовать селектор, но вы будете заковав цельный вытягиваемый, не только цвет. См here

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

Вы можете понять этот список, как

switch(state){ 
    case pressed: 
    use some drawable 
    break; 
    case focused: 
    use some other drawable 
    break; 
    default: 
    use the default drawable 
} 
+0

Да, но есть ли способ сделать это, не теряя пользовательский фон формы? –

+0

скопируйте вашу пользовательскую форму в другой xml и измените только цвет –

+0

duh, спасибо. –

1

Создать StateList вытяжки с другим Drawable для прессованного состояния.

<?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/button_pressed" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:drawable="@drawable/button_focused" /> <!-- focused --> 
    <item android:state_hovered="true" 
      android:drawable="@drawable/button_focused" /> <!-- hovered --> 
    <item android:drawable="@drawable/button_normal" /> <!-- default --> 
</selector> 
Смежные вопросы