안드로이드(Android)에는 Shape Drawable이라는 것이 있습니다. 코드상에서 다양한 모양의 Drawable 을 만들 수 있는 방법도 제공하지만 XML로 쉽게 배경이미지를 만드는데도 사용합니다. 실제 비트맵을 사용하지 않아도 되므로 apk의 용량도 줄여주고 쉽게 모양을 바꿀수도 있으니 편리합니다. 그런데 아직 제대로 문서화되어있지 않지만 활용도가 높아서 정리해놓습니다.
1.
<
shape
xmlns:android
=
"http://schemas.android.com/apk/res/android"
>
2.
<
solid
android:color
=
"#FF0000FF"
/>
3.
<
stroke
android:width
=
"4dp"
android:color
=
"#FFFFFFFF"
4.
android:dashWidth
=
"1dp"
android:dashGap
=
"2dp"
/>
5.
<
padding
android:left
=
"7dp"
android:top
=
"7dp"
6.
android:right
=
"7dp"
android:bottom
=
"7dp"
/>
7.
<
corners
android:radius
=
"4dp"
/>
8.
</
shape
>
res/drawable/some_name.xml 으로 저장하면 다른 Bitmap Drawable과 동일하게 사용할 수 있습니다.
solid : 단색으로 채워넣습니다.
stroke : 테두리를 그려넣습니다. dashWidth와 dashGap은 점선을 그릴 때 사용합니다.
corners : 가장자리를 둥글게 처리합니다.
padding : 패딩
1.
<
gradient
android:startColor
=
"#FFFF0000"
android:endColor
=
"#80FF00FF"
2.
android:angle
=
"270"
/>
gradient를 solid대신 넣을수도 있습니다. 단색이아니라 gradient 효과(서서히 색이 변하는)로 채워집니다.
1.
<
shape
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:shape
=
"oval"
>
2.
<
solid
android:color
=
"#00000000"
/>
3.
<
stroke
android:width
=
"4dp"
android:color
=
"#99000000"
4.
android:dashWidth
=
"4dp"
android:dashGap
=
"2dp"
/>
5.
<
padding
android:left
=
"7dp"
android:top
=
"7dp"
6.
android:right
=
"7dp"
android:bottom
=
"7dp"
/>
7.
<
corners
android:radius
=
"4dp"
/>
8.
</
shape
>
shape를 oval로 지정하면 타원형의 형태로 만들수가 있습니다.
1.
<
shape
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:shape
=
"line"
>
2.
<
stroke
android:width
=
"1dp"
android:color
=
"#FF000000"
3.
android:dashWidth
=
"1dp"
android:dashGap
=
"2dp"
/>
4.
</
shape
>
shape를 line으로 지정하여 단순한 선을 만들수도 있습니다.
XML로 그려진 Drawable들 예제..