티스토리 뷰
selector라는 엘리먼트를 사용하면 뷰를 선택했을 때와 안했을 때의 색상을 다르게 줄 수 있다.
마치 웹프로그래밍 시에 css에서 hover와 같은 효과라고 볼 수 있다.
우선 selector엘리먼트를 정의 할 xml 파일을 하나 만들어야 되니
res/drawable 디렉토리에서 마우스 오른쪽을 클릭해서 resource파일 추가로 해서 만든다.
selector_ex.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="@color/colorAccent" /> <item android:drawable="@color/colorPrimary" /> </selector>
위가 selector의 기본 구조이며, 안에 item엘리먼트가 존재하는데 여기에서 어떤 상태에 따라서 색상을 줄 수 있는가를 지정할 수 있다.
상태의 목록
android:state_enable : 사용 가능 상태
android:state_selected : 선택 상태
android:state_pressed : 클릭 상태 (눌려있는 경우)
android:state_focused : 포커스 상태
android:state_checked : 체크된 상태
다음은 layout xml파일에서 뷰들에게 이 selector를 지정한다.
<Button android:id="@+id/showButton" android:layout_width="160dp" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:textSize="20dp" android:background="@drawable/selector_ex"/> <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="텍스트를 입력하세요." android:textSize="20dp" android:background="@drawable/selector_ex"/>
background속성에 selector파일을 지정하면 된다.
버튼과 텍스트에딧 뷰 둘 전부에 만들어 둔 selector_ex.xml파일을 따르라고 background에 지정해 주었다.
이제 이 둘의 뷰는 터치하고 있으면 색상이 변하게 된다.
결과화면
- 버튼 뷰는 터치하고 있는 상태이다.
'Android > 정리' 카테고리의 다른 글
WebView사용하기 (웹뷰) (0) | 2016.06.14 |
---|---|
Androdmanifest.xml의 configchanges속성 (0) | 2016.06.10 |
이벤트 처리 (0) | 2016.06.08 |
알림 대화상자 띄우기 (0) | 2016.05.28 |
애플리케이션 실행 시 권한 부여 (0) | 2016.05.26 |
Comments