app - res - drawable 밑에 xml 리소스 파일 생성
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
//버튼 pressed 했을때
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:radius="50sp"/>
<solid android:color="#ff0000"/>
</shape>
</item>
//일반 버튼 상태
<item>
<shape android:shape="rectangle">
<corners android:radius="50sp"/>
<solid android:color="#00ff00"/>
</shape>
</item>
</selector>
item 태그 하위 속성
state_pressed | 객체를 누를 때 (ex : 버튼을 터치하거나 클릭 할 때) 이 항목을 사용해야하는 경우 "true" 이 항목을 누르지 않은 기본 상태로 사용해야하는 경우 "false" |
state_checked | 개체를 확인할 때 이 항목을 사용해야하는 경우 "true" 객체를 체크하지 않은 상태에서 사용해야하는 경우 "false" |
state_enabled | 개체가 활성화되어있을 때 이 항목을 사용해야하는 경우 "true"(터치 / 클릭 이벤트 수신 가능) 개체를 사용할 수 없을 때 사용해야하는 경우 "false" |
state_focused | 버튼이 강조 표시 될 때와 같이 객체에 포커스가있을 때 이 항목을 사용해야하는 경우"true " 이 항목을 초점이없는 기본 상태로 사용해야하는 경우 "false" |
state_selected | 개체를 선택할 때 (ex : 탭을 열 때와 같이) 이 항목을 사용해야하는 경우 "true" 개체를 선택하지 않은 상태에서이 항목을 사용해야하는 경우 "false" |
코너 둥글기
<corners android:radius="50sp"/>
배경 색상
<solid android:color="#ff0000"/>
*유의 사항
이벤트 효과를 갖는 태그( <item android:state_pressed="true"> )를 먼저 작성
만약 효과가 없는 태그보다 밑에 위치한다면 아무런 변화가 없음
적용 방법
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button1"/>
background 속성에 @drawable/button1 적용해주면 완료
결과
추가) 이미지 버튼
<?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/img_clicked">
</item>
<item
android:drawable="@drawable/img">
</item>
</selector>
itme 태그 내에 drawable 경로 추가
'Android' 카테고리의 다른 글
[Android] 안드로이드 뒤로가기 이벤트/ 뒤로가기 두번 눌러 종료 (0) | 2020.12.30 |
---|---|
[Android] 안드로이드 권한설정 / 앱 시작 시에 권한 창 띄우기 (1) | 2020.12.30 |
[Android] 안드로이드 스튜디오 4.1.1 버전에서 버튼 배경(Background) 색상 변경 안되는 문제 (8) | 2020.12.28 |
[Android] 안드로이드 토스트 메시지(Toast Message) (0) | 2020.12.28 |
[Android] 안드로이드 스튜디오 깃허브(GitHub) 연동/협업/업데이트 (0) | 2020.12.28 |