드로어블(Drawable)
드로어블은 뷰에 설정할 수 있는 객체이며 그래픽으로 그릴 수 있다.
드로어블은 소스코드에서 만들 수도 있고 XML에서 정의할 수도 있는데 XML로 만들어 사용하는 경우가 많다.
드로어블 XML파일은 /res/drawable 폴더 안에 넣어서 마치 이미지처럼 뷰의 배경으로 설정할 수 있다.
비트맵 드로어블(BitmapDrawable) : 이미지 파일을 보여줄 때 사용한다.
상태 드로어블(StateListDrawable) : 상태별로 다른 그래픽을 참조할 수 있다.
전환 드로어블(TransitionDrawable) : 두 개의 드로어블 간에 바뀌도록 한다.
쉐이프 드로어블(ShapeDrawable) : 색상과 그라데이션을 포함하여 도형 모양을 정의할 수 있다.
인셋 드로어블(InsetDrawable) : 지정한 거리만큼 안쪽으로 들어오도록 만들 수 있다. 뷰가 실제 범위보다 작은 백그라운드가 필요한 경우 사용한다.
클립 드로어블(ClipDrawable) : 다른 드로어블을 클리핑한다. 진행률 표시줄과 같은 항목을 구현하는데 사용한다.
스케일 드로어블(ScaleDrawable) : 다른 드로어블의 크기를 바꿀 수 있다.
상태 드로어블
thumb_up
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/ic_thumb_up_selected" />
<item android:drawable="@drawable/ic_thumb_up" />
</selector>
<Button
android:id="@+id/button"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/thumb_up"
/>
쉐이프 드로어블
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:height="120dp"
android:width="200dp"/>
<stroke android:width="1dp"
android:color="#0000ff"/>
<solid android:color="#aaddff"/>
<padding android:bottom="10dp"/>
<gradient
android:startColor="#7288DB"
android:centerColor="#3250B4"
android:endColor="#254095"
android:angle="0"
android:centerY="0.5"
/>
<corners android:radius="2dp" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#000000" />
<solid android:color="#00000000" />
</shape>
</item>
<item android:top="1dp" android:bottom="1dp"
android:right="1dp" android:left="1dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#BE55DA" />
<solid android:color="#00000000" />
</shape>
</item>
</layer-list>
'공부 > 안드로이드' 카테고리의 다른 글
[안드로이드] 스크롤뷰 (0) | 2021.08.10 |
---|---|
[안드로이드] 버튼이 보라색에서 안 바뀔 때 해결 방법 (0) | 2021.08.10 |
[안드로이드] 위젯 (0) | 2021.08.10 |
[안드로이드] 레이아웃 (0) | 2021.08.10 |
[안드로이드] 뷰 (0) | 2021.08.10 |