상태 드로어블 적용해보기
상태 드로어블은 뷰의 상태에 따라 뷰에 보여줄 그래픽을 다르게 지정할 수 있다.
버튼(이미지)을 눌렀을때와, 누르지 않은 상태를 다른 이미지로 보여주게 할 수 있다.
finger.drawable.xml을 만들어서 다음과 같이 작성해보자.
[app/res/drawable/finger_drawable.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="@drawable/finger_pressed"
/>
<item
android:drawable="@drawable/finger"
/>
</selector>
|
cs |
상태 속성이 설정되지 않은 태그에는 drawable 속성값으로 @drawable/finger를 입력했다. 이렇게 하면 finger.png 이미지가 보이게 된다. state_pressed라는 상태 속성이 설정된 태그에는 drawable 속성 값으로 @drawable/finger_pressed를 입력했다. 이 이미지는 뷰가 눌렸을 때 보이게 된다.
위처럼 만든 xml 파일은 뷰의 background 속성으로 설정할 수 있다.
activity_main.xml 파일에서 버튼을 선택한 후, background 속성의 값을 @drawable/finger_drawable로 변경한다.
[activity_main.xml]
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="141dp"
android:layout_marginLeft="141dp"
android:layout_marginTop="300dp"
android:layout_marginEnd="142dp"
android:layout_marginRight="142dp"
android:layout_marginBottom="303dp"
android:background="@drawable/finger_drawable"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
|
cs |
앱을 실행해서 버튼을 눌러보면, 상태에 따라 버튼이 바뀌는 것을 확인할 수 있다.
'안드로이드 > Android-Dev' 카테고리의 다른 글
Android # Linear Layout (0) | 2019.12.14 |
---|---|
Android # java file에서 layout 생성 (0) | 2019.12.14 |
Android # drawable 폴더(해상도) (0) | 2019.12.13 |
Android # 크기 표시 단위(px, dp, sp, em) (0) | 2019.12.12 |
Android # View 와 View group (0) | 2019.12.12 |