2016-06-21 2 views
1

Я видел много примеров для ImageButton при наведении, но они меняют изображение. Я просто хочу изменить цвет фона.Change imageButton backgound color on press

Это мой селектор -

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

<item android:state_pressed="true" android:color="#4B88F7"/> 
<item android:state_pressed="false" android:color="#121212"/> 

И мой ImageButton -

<ImageButton 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="2" 
     android:background="@color/actionbar_btn" 
     android:src="@drawable/ic_remove" /> 

ответ

1

Создайте файл custom_selector.xml в res/drawable/ директории со следующим содержанием:

<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@color/btn_pressed"/> 
    <item android:state_pressed="false" android:drawable="@color/btn_released"/> 
</selector> 

Затем применить это фон до ImageButton от setti нг его как background:

<ImageButton 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="2" 
    android:background="@drawable/custom_selector.xml" 
    android:src="@drawable/ic_remove" /> 

См https://developer.android.com/guide/topics/resources/color-list-resource.html

+0

это дало исключение. тег требует атрибута drawable или дочернего тега, определяющего drawable – reza

+0

@reza, я редактировал свой пост. Вам нужно будет создавать цвета 'btn_pressed' и' btn_released'. – Kairat

+0

работал отлично спасибо :) – reza