연구노트/안드로이드

Drawable - ShapeDrawable

생존형수동개발자 2019. 5. 17. 01:39

요즘 안드로이드하면서 은근히 많이 사용하고 있는 XML

레이아웃이나 버튼에 배경을 잡을때 사용한다. - 배경색, 둥근모서리, 윤곽선, 패딩 등등

 

res/drawable/[filename].xml

 

 

? => 안써본 것들

corners

- 둥근모서리 만들때

  • radius : 전체 모서리
  • topLeftRadius : 왼쪽위 모서리
  • topRightRadius : 오른쪽위 모서리
  • bottomLeftRadius : 왼쪽아래 모서리
  • bottomRightRadius : 오른쪽아래 모서리

gradient

 - 그라데이션 만들때(start - center - end)

  • angle : 0도일때 왼쪽에서 오른쪽 / 90 위에서 아래로 
  • centerX : ? 방사형일때?
  • centerY : ?
  • centerColor : 그라데이션 색상중 중간 색상
  • endColor : 그라데이션 색상중 마지막 색상
  • gradientRadius : ?
  • startColor : 그라데이션 색상중 처음 색상
  • type : ?
  • useLevel : ?

padding

 - 패딩 넣을때

  • left : 왼쪽 패딩
  • top : 상단 패딩
  • right : 오른쪽 패딩
  • bottom : 하단 패딩

size

 - 가로세로

  • width : ? 가로크기
  • height : ? 세로크기

solid

 - 배경

  • color : 배경

stroke

 - 윤곽선 넣을때

  • witdh : 윤곽선 두께
  • color : 윤곽선 색
  • dashWidth : ? 점선일듯
  • dashGap : ? 점선일듯

 

자료형에 맞춰서 값을 넣어주면됨

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape=["rectangle" | "oval" | "line" | "ring"] >
    <corners
        android:radius="integer"
        android:topLeftRadius="integer"
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />        
    <gradient
        android:angle="integer"
        android:centerX="float"
        android:centerY="float"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
    <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />
    <size
        android:width="integer"
        android:height="integer" />
    <solid
        android:color="color" />
    <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer" />
</shape>
cs

배경, 윤곽선(0), 그라데이션 사용 결과

 

참고

https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape