210202

[View] 쉐이프 드로어블(ShapeDrawable) 정리 본문

Android/View

[View] 쉐이프 드로어블(ShapeDrawable) 정리

dev210202 2020. 5. 29. 13:14

쉐이프 드로어블이란?

- xml로 도형을 그릴 수 있도록 해줌

쉐이프 드로어블 이용

최상위 태그를 <shape>로 바꾸면 도형을 정의할 수 있다. shape 태그에는 shape 속성이 들어갈 수 있고 rectangle(직사각형), oval(타원), line(선), ring(고리)를 사용하여 모양을 정할 수 있다. 또한 도형의 테두리 선에 대해 굵기나 색상을 지정할 수 있고 도형을 채우는 색상을 지정할 수 있다. <stroke> 태그를 <shape> 태그 안에 넣어서 테두리 선의 속성을 지정할 수 있고 width는 선의 굵기, color는 선의 색상을 설정 할 수 있다. <solid> 태그로 도형의 안쪽을 채울 수 있다.

<gradient> 태그를 통해서 배경에 그라데이션을 줄 수 있다. startColor에는 시작 부분의 색상, centerColor에는 가운데 부분의 색상, endColor에는 끝 부분의 색상을 지정할 수 있다.

 

Ex Code - gradient

<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <gradient
        android:startColor="#7288DB"
        android:centerColor="#3250B4"
        android:endColor="#254095"
        android:angle="90"
        android:centerY="0.5"
        />

    <corners android:radius="2dp" />

</shape>

또한 <layer-list> 태그를 사용하여 여러 그래픽을 하나의 xml 파일에 넣을 수 있다.

<layer-list> 태그 안에는 <item> 태그가 여러개 들어갈 수 있으며 <item> 태그 안에는 <shape> 태그가 들어갈 수 있어 각각을 도형으로 정의할 수 있다.

만약 버튼의 테두리만 보이게 하는 드로어블을 만들고 싶다면 도형 안족을 투명하게 채우고 테두리 선만 색상을 주면 된다.

 

Comments