안녕하세요. 크롬입니다.
최근 안드로이드 개발 관련 학습중 드로어블에 대한 부분에 대한 개념이 잘 잡히지 않아 정리 하고 갑니다.
드로어블(Drawable)은 그림 이미지등을 관리하기도 하지만 HTML 스타일 시트처럼 객체에 대한 디자인을 정의해 놓아 사용할 수 있다.
드로어블(Drawable)은 뷰에 설정할 수 있는 객체이며 그래픽으로 그릴수 있다. XML로 정의 할수 있으며 JAVA 코드에서도 작성 가능하다.
드로어블은 구분하자면 아래와 같이 구분되어 진다.
▶비트맵 드로어블(BitmapDrawable)
이미지 파일을 보여줄 때 사용. 비트맵 그래픽 파일( png, jpg 또는 gif) BitmapDrawable 을 생성합니다.
android:antialias
android:dither
android:filter
android:gravity
android:mipMap
android:src
android:tileMode
▶나인패치 드로어블(NinePatchDrawable)
콘텐츠에 따라 이미지 크기를 조정 할 수 있는 확장 가능한 영역이 포함된 PNG파일
▶레이어 드로어블(LayerDrawable)
다른 드로어블 배열을 관리하는 드로어블. 이 드로어블은 배열 순서대로 그려지므로, 가장 큰 인덱스를 갖는 요소가 맨 위에 그려집니다. LayerDrawable
을 생성합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/android_red" android:gravity="center" /> </item> <item android:top="10dp" android:left="10dp"> <bitmap android:src="@drawable/android_green" android:gravity="center" /> </item> <item android:top="20dp" android:left="20dp"> <bitmap android:src="@drawable/android_blue" android:gravity="center" /> </item> </layer-list> | cs |
res/drawable/layers.xml 드로어블 생성
1 2 3 4 | <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/layers" /> | cs |
레이아웃 xml에 ImageView 생성후 layers 드로어블을 적용
실행 화면
▶상태 드로어블(StateListDrawable)
뷰의 상태별에 따라 다른 그래픽을 지정
최상위 태그 <selector>
android:constantSize
android:state_active
android:state_activated
android:state_checkable
android:state_checked
android:state_enabled
android:state_first
android:state_focused
android:state_last
android:state_middle
android:state_pressed
android:state_selected
android:state_single
android:state_window_focused
android:variablePadding
android:visible
▶전환 드로어블(TransitionDrawable)
두 개의 드로어블 간에 바뀌도록 만들 수 있음
▶쉐이프 드로어블(ShapeDrawable)
색상과 그라데이션을 포함하여 도형 모양을 정의 할 수 있음
▶클립 드로어블(ClipDrawable)
다른 드로어블을 클리핑, 진행율 표시 줄과 같은 항목 구현
▶스케일 드로어블(ScaleDrawable)
다른 드로어블의 크기를 변경
참조
https://developer.android.com/guide/topics/resources/drawable-resource?hl=ko
'IT > 프로그래밍' 카테고리의 다른 글
HTML 5 신규 기능 (102) | 2023.10.19 |
---|---|
HTML 태그 예시 (98) | 2023.10.18 |
HTML이란? (80) | 2023.10.17 |
프런트엔드 vs 백엔드 vs 풀스택 개발자 (88) | 2023.10.13 |
eclipse 환경설정 charset 변경 (0) | 2023.02.16 |