2013-12-13 6 views
0

Есть ли основной тег android для Android, который меняет цвет фона в режиме просмотра, когда пользователь касается указанного вида? Скажем, это текстовое изображение, которое можно щелкнуть. Когда пользователь касается TextView, я хочу дать некоторую обратную связь (т. Е. Изменить цвет фона), чтобы пользователь знал, что это кнопка.изменить цвет отображения при выборе

+0

После того как вы разместите вопрос, пожалуйста, убедитесь, что вы попробовали ответы, опубликованные людьми, и отметили правильный ответ. – Prem

ответ

0

Вы можете установить фон любого вида, используя атрибут style.

Вы можете изменить цвет текста, шрифт и цвет фона кнопки, используя атрибут style.

Шаги для этого.

Шаг 1. определить файл XML называется Рез/рисуем/button_clickedState.xml

button_clickedState.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/btn_pressed" /> 
<item 
android:state_pressed="false" 
android:drawable="@drawable/btn_normal" /> 
</selector> 

Шаг 2

В методе OnClick, добавьте эту строку кода.

b.setBackgroundResource(R.drawable.button_clickedState);// b is your button 

В этом вопросе stackoverflow подробно описывается, как установить атрибут стиля для любых видов.

How to programmatically setting style attribute in a view

0

для этого вам нужно создать XML сказать background.xml в директории Resources/вытяжке-ИПЧР

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

Пусть ваш TextView является «телевизор», а затем добавьте следующую строку в код

 tv.setClickable(true); 
     tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.background)); 

ДОПОЛНИТЕЛЬНОЕ

Теперь вы можете (или не можете) также изменить цвет текста, когда пользователь прикасается/нажимает кнопку, для чего вам нужно создать другой xml, скажем, textcolor.xml в каталоге Resources/color так же, как создается background.xml.

 <?xml version="1.0" encoding="UTF-8"?> 

    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
    android:color="#ffff0000"/>  <!-- color you want when view pressed--> 
    <item android:color="@color/white" /> <!--or whatever is your default color--> 
    </selector> 

Конечно, вам нужно подобрать подходящие цвета, соответствующие фону. После создания XML вам необходимо добавить следующие строки в коде (опять же предположение имя TextView является «ТВ)

 XmlResourceParser parse==getResources().getXml(R.color.textcolor); 
     ColorStateList csl=ColorStateList.createFromXml(getResources(), parse); 
     tv.setTextColor(csl); 

[Примечание: В ваших ресурсах/значение создать файл color.xml и установите значения цвета Струнных ]

<resources> 
<color name="white"> #EFFBF5</color> 
<color name="green">#008000</color> 
    </resources> 
0

Да, это может быть сделано в XML

Сначала создайте селектор, похожий на приведенные выше ответы в вашей вытяжке папки:.

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

    <item android:drawable="@color/off_white" android:state_focused="true"/> 
    <item android:drawable="@color/off_white" android:state_pressed="true"/> 
    <item android:drawable="@color/white"/> 

</selector> 

Затем установите атрибут android: background = "@ drawable/myDrawableSelector".

<TextView 
    android:id="@+id/login_email" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="80dp" 
    android:background="@drawable/myDrawableSelector" 
    android:padding="12dp" /> 
Смежные вопросы