2013-05-27 3 views
1

У меня есть image button, и я хочу изменить цвет кнопки при нажатии. Сначала я показываю его с transparent как цвет состояния по умолчанию, как показано ниже. Но при нажатии он не выделяется. Поэтому я решил использовать другой цвет, чтобы выделить при нажатии с использованием состояния, пригодного для рисования. Но как сохранить цвет фона в стилях мудрым. Средство по умолчанию должно быть прозрачным, а при нажатии оно должно показывать другой цвет.Изменение цвета фона через стили

присутствует код:

<ImageButton 
     android:id="@+id/imgbutton" 
      android:layout_width="20dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:src="@drawable/ic_launcher" 
      android:background="@android:color/transparent" 
     /> 

Нужно быть закодированы:

<ImageButton 
     android:id="@+id/imgbutton" 
      android:layout_width="20dp" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:src="@drawable/ic_launcher" 
      android:background="@drawable/btnselector" 
     /> 

Так что должно быть btnselector.xml здесь?

ответ

1

положить его в res/color

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

<item android:state_pressed="true" android:color="@color/green_text_color"/> <!-- pressed --> 
<item android:state_focused="true" android:color="@color/green_text_color"/> <!-- focused --> 
<item android:color="@android:color/white"/> <!-- default --> 

</selector> 

создать новую форму, внутри Рез/вытяжке

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
    <solid android:color="@color/yourxmlfile" /> 
</shape> 

и положить его в качестве фона

или в res/drawable селектор

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

</selector> 
+0

Он выдает ошибку, поскольку тег элемента требует атрибута drawable. Вот почему я разместил этот вопрос. Потому что в каждом примере я нашел только drawable, но не так. – Spike

+0

Да, извините, я должен был упомянуть, что помещаю его в папку res/color. Вы хотите иметь яркую интендад цвета? – Blackbelt

+0

Если я поместил эту папку res/color. Как передать этот файл с Android: фон? – Spike

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