2016-09-21 8 views
-1

Я создал селектор:Android селектор с TextColor

btn_bg.xml

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

    <!-- focused --> 
    <item android:drawable="@drawable/btn_bg_focused" android:state_focused="true" /> 

    <!-- default --> 
    <item android:drawable="@drawable/btn_bg_default" /> 
</selector> 

btn_bg_pressed.xml

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

btn_bg_focused.xml

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

btn_bg_default.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke android:width="2dp" 
     android:color="@color/btn_default_border_color" /> 
</shape> 

Я хочу изменить кнопку text color при изменении фокуса. Я попытался добавить android:color="color_code" и android:textColor="color_code", но не смог. Пожалуйста, помогите мне на Как изменить цвет текста кнопки с помощью селектора?

+0

добавить

+0

@Anas Azeem вы видели мой ответ ниже. – Ironman

ответ

0

Вы можете добиться этого на вашем собственном классе TextView, который расширяет класс Android TextView и переопределить onTouchEvent(MotionEvent event)

Вы можете изменить цвет экземпляра текста на основе MotionEvent прошло.

Например:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     // Change color 
    } else if (event.getAction() == MotionEvent.ACTION_UP) { 
     // Change it back 
    } 
    return super.onTouchEvent(event); 
} 
0

Определить этот путь:

Создать button_selector.xml файл в каталоге 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="#000000" /> <!-- pressed --> 
    <item android:state_focused="true" 
      android:color="#000000" /> <!-- focused --> 
    <item android:color="#FFFFFF" /> <!-- default --> 
</selector> 

и Button собственности определяют таким образом.

<Button 
    android:TextColor="@color/button_selector" 
/> 
0

Есть трюк, в котором вы можете повторно использовать свой ресурс, который можно использовать для изменения цвета для вашего текста.

В вашем layout.xml, объявить кнопку background и textColor следующим образом:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/btn_bg" 
    android:textColor="@drawable/btn_bg" 
    android:text="Hello" /> 

Теперь в вашем drawable/btn_bg.xml, определяют android:color="@color/your_color_code" как item атрибута:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- pressed --> 
    <item android:color="@color/md_green_500" android:drawable="@drawable/btn_bg_pressed" android:state_pressed="true" /> 

    <!-- focused --> 
    <item android:color="@color/md_red_500" android:drawable="@drawable/btn_bg_focused" android:state_focused="true" /> 

    <!-- default --> 
    <item android:color="@color/md_blue_500" android:drawable="@drawable/btn_bg_default" /> 
</selector> 

Вы должны быть в состоянии для изменения цвета фона и текста для вашей кнопки.

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

  • Нет связанных вопросов^_^