본문 바로가기

나의 플랫폼/안드로이드

[Andoird] Button 클릭 시, textColor 변경

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


text_selector.xml

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

    <item android:state_selected="true" android:color="@color/_727272" />

    <item android:state_focused="true" android:color="@color/_727272" />

    <item android:state_pressed="true" android:color="@color/_727272" />

    <item android:color="@color/white" />

</selector>


layout.xml

<Button

        android:id="@+id/cell_frag_home_ringstar_now_list_btn_popluar"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:textColor="@color/selector_home_btn_menu"/>


위와 같이 하면 적용 된다.


Java 단에서 하고자 한다면 아래 소스를 참고 하세요.


예) /res/color/selector_text.xml

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
  <item android:state_pressed="true" android:color="#ff0000"/>
  <item android:state_focused="true" android:color="#ff0000"/>
  <item android:color="#000000"/>;
</selector>

버튼이 xml layout 에 있는 경우는 그냥 android:textColor=”@color/selector_text.html” 로 지정해주면 되지만,

만약 java 안에서 프로그램적으로 세팅해 주는 경우는 다음과 같은 코드를 써야 한다.

1
2
3
btnTest.setTextColor(
  getResources().getColorStateList(R.color.selector_text)
);

이렇게 안 하고 그냥 getColor() 를 사용하면 버튼 터치 시 색 변화가 없다.

출처 : https://chrisjhyoon.wordpress.com/2015/07/01/button-%ED%98%B9%EC%9D%80-textview-%EC%9D%98-text-color%EB%A5%BC-selector-%EB%A1%9C-%EC%A7%80%EC%A0%95%ED%95%98%EB%8A%94-%EA%B2%BD%EC%9A%B0/