[Doit! 안드로이드 앱 프로그래밍] Drawable
참고서적: Doit 안드로이드 앱 프로그래밍
위젯들중 대표적으로 많이사용하는 기본적인 위젯들중 책에서 소개하는것들은 다음과같다.
- TextView
- Button
- EditText
- ImageView
- ImageButton
그속성들은 이후의 포스팅예제들에서 아주많이 다루게되므로 따로 소개는 하지않겠다.
Drawable은 view의 디자인에 관여하는 요소이다.
위의 위젯들과 같은 모든 view의 요소에 그림을 넣거나, 원하는 모양 혹은 색상, 그라데이션 등등 디자인적인 부분에대해 사용되어진다.
방법은 view들의 background 속성에 만들어진 drawable을 참조하면 된다. 아주간단하다.
이 Dawable의 종류로는 다양한 종류가 있지만, 가장많이 사용하는 종류는 StateListDrawable 과 shapeDrawable 이다.
StateListDrawable은 view의 상태에 따라 그래픽을 지정할수있다.
버튼을 예로들면, 버튼이 눌렷을때 와 눌럿다가 떼어졋을때 등등 그 상태에따른 버튼의 그래픽 을 지정할수 있게된다.
StateListDrawable의 xml파일의 최상위 태그는< selector> 이다. 그 안에는 < item> 태그를 넣어 각각의 상태에 따라 item 태그들을 정의하면 된다.
ShapeDrawable은 XML로 도형을 그릴수있는 drawable 이다. 최상위태그가 < shape> 이고, 태그속성 shape에 속성값을넣어 원하는 모양을 만들수있다. 예를들어 shape=”rectangle”로 하면 사각형 모양을 만들수있다.
< shape> 속성 안에는 < size> , < stroke>, < solid> , < padding>, < corners> , < gradient> 가있다.
순서대로 size는 view의 크기를 지정, stroke는 view의 테두리를 결정, solid는 view의 테두리안의 색상을결정, padding은 테두리 안쪽공간의 content위치를 결정, gradient는 그라데이션을 만들수있다.
마지막으로, 여러개의 그래픽을 하나에 xml에 넣기위해서는 최상위태그를 < layer-list>로 작성하고 그하위에 < item>태그를 넣어 각각의 item에 원하는 drawable을 작성하면 된다.
위의 모든예제들에 대한 코드는 깃허브주소 에있다.
댓글남기기