2014-10-11 3 views
0

У меня есть макет в моем приложении, которое я определил как:набора активированное состояние для формы андроида

<LinearLayout 
    android:id="@+id/amountLayout" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="0.25" 
    android:background="@drawable/gradient_effect_green" 
    android:orientation="vertical" 
    android:padding="10dp" 
    android:layout_marginLeft="3dp" 
    android:layout_marginRight="3dp" 
    android:layout_marginBottom="3dp" > 

и gradient_effect_green является:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 
< 
<solid android:color="@color/green_light" /> 
<corners 
    android:bottomLeftRadius="20dp" 
    android:bottomRightRadius="20dp" 
    android:topLeftRadius="20dp" 
    android:topRightRadius="20dp" /></shape> 

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

android:state_pressed="true" android:drawable="@color/deep_light" 

ответ

1

Просто следуйте инструкциям

1) gradient_effect_green.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 
< 
<solid android:color="@color/green_light" /> 
<corners 
    android:bottomLeftRadius="20dp" 
    android:bottomRightRadius="20dp" 
    android:topLeftRadius="20dp" 
    android:topRightRadius="20dp" /></shape> 

2) gradient_effect_green_selected.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 
    < 
    <solid android:color="@color/deep_light" /> 
    <corners 
     android:bottomLeftRadius="20dp" 
     android:bottomRightRadius="20dp" 
     android:topLeftRadius="20dp" 
     android:topRightRadius="20dp" /></shape> 

3) gradient_effect_selector.xml

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

     <item android:drawable="@drawable/gradient_effect_green_selected" android:state_pressed="true"></item> 
     <item android:drawable="@drawable/gradient_effect_green_selected" android:state_focused="true"></item> 
     <item android:drawable="@drawable/gradient_effect_green" android:state_enabled="true" android:state_focused="false" android:state_pressed="false"></item> 
     <item android:drawable="@drawable/gradient_effect_green_selected" android:state_enabled="false"></item> 

</selector> 

4) your_layout.xml

<LinearLayout 
    android:id="@+id/amountLayout" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="0.25" 
    android:background="@drawable/gradient_effect_selector" // CHANGE HERE 
    android:orientation="vertical" 
    android:padding="10dp" 
    android:layout_marginLeft="3dp" 
    android:layout_marginRight="3dp" 
    android:layout_marginBottom="3dp" > 
+0

Ты мой герой !!! – A23149577

+0

благодарит за комплимент –

Смежные вопросы