💚 개발/안드로이드 [안드로이드] 버튼 색깔 바꾸기devshin.kr 2021. 10. 28. 17:28
[ 안드로이드] 버튼 눌렀을 때 버튼 색깔과 텍스트 색깔이 바뀌게 하기. 버튼 커스텀! - selector, rip 이렇게 되는 것을 만들 것이다. 조금 복잡해 보일 수 있는데... ㅎ 천천히 따라 오면 쉽다. 복잡하고 모르겠으면 일단 복붙해서 넣고 값을 바꿔 가면서 확인해 보시길.. 0. MainActivity.java (패키지명 devshin93.tistory.com 1. Android 에서 버튼 색깔 등을 바꾸고 싶으면 res > values > themes.xml에서 parent="Theme.AppCompat"으로 바꾸어 주어야 한다. 2. 그 다음 res > drawable 에서 우클릭을 해 New Drawable Recourse File 을 클릭해 btn_blue.xml 파일을 만들자.
4. src > layout > 사용할 activity.xml 에서 Button 을 사용하는 코드. 중요한 것은 android:background 이다.
5. 바뀐 버튼 색깔을 확인 할 수 있다. >> 다음 장에서는 themes.xml 에서 parent="Theme.AppCompat" 으로 변경 함으로 인해 다른 색이 보이지 않는 경우에 대해 다룬다. 💚 개발/안드로이드 [ 안드로이드] 버튼 눌렀을 때 버튼 색깔과 텍스트 색깔이 바뀌게 하기. 버튼 커스텀! - selector, rippledevshin.kr 2021. 11. 10. 23:17 이렇게 되는 것을 만들 것이다. (Before) 안드로이드에서 제공하는 기본 버튼 (After) 내가 커스텀한 버튼조금 복잡해 보일 수 있는데... ㅎ 천천히 따라 오면 쉽다. 복잡하고 모르겠으면 일단 복붙해서 넣고 값을 바꿔 가면서 확인해 보시길.. 0.MainActivity.java (패키지명까지 따라하지는 말 것... 간혹 그런 사람들도 있는 것 같아서.. 혹시나) 앱이 실행되고 2.5 초 뒤에 버튼이 활성화되는 액션을 만들어 보자.
1.activtity_main.xml src > main > res > layout 에서 테스트 페이지로 사용할 activity_main.xml 을 만든다. (안드로이드 프로젝트가 생성되면 기본으로 만들어져 있을 것이긴 함.) activity_main.xml 을 만들고 안에 코드를 작성한다고 해서 빌드 되지 않는다. @drawable/btn_ripple 과 @drawable/txt_color 가 안 만들어져 있기 때문. 아래에서 만들 것 주의할 점 1. 버튼을 만드는 데 버튼 태그가 <Button 이 아닌, <android.appcompat.widget.AppCompatButton 으로 시작한다.
2.btn_disable.xml src > main > res > drawable 에서 새로운 shape 를 생성한다. 더보기 새로운 파일 생성하는 방법 android:enable="false" 일 때 가지게 될 버튼의 모양 및 색깔이다.
더보기 Split 을 누르면 만들고 있는 모양을 확인하면서 만들 수 있다. 모서리와 색깔을 확인해 보자. 3.btn_normal.xml src > main > res > drawable 에서 새로운 shape를 생성한다. android:enable="true" 일 때 가지게 될 버튼의 모양 및 색깔이다.
더보기 모서리와 색깔을 확인하자. 4.btn_ok.xml src > main > res > drawable 에서 새로운 selector 를 생성한다. <selector 안에는 <item 들이 들어가게 된다.
더보기 아이템의 상태에 따라 위에서 만들어준 xml 로 바뀐다. 5.btn_ripple.xml src > main > res > drawable 에서 새로운 ripple을 생성한다. ripple : 잔물결 (사전적 의미)
더보기 일시적으로 바뀌는 색깔은 하얀색으로, 버튼의 색깔은 위에서 만들어 준 btn_ok(평소 색깔이 파랑색이어서 미리보기에서는 파랑으로 뜨나 보다) 6.txt_color.xml src > main > res > drawable 에서 새로운 selector을 생성한다. 2~5번은 버튼의 색깔과 모양을 잡아주기 위함이었고,
더보기 #FFFFFF 와 #AEAEAE 는 미묘하게 다름!! 하양과 회색! |