Drawable.xml

Du-Hyeon, Kim·2023년 8월 30일
0

Android

목록 보기
4/12

drawable의 필요성

state_Drawable

1. image vs button

별다르게 차이는 없다.
위젯 자체가 상속이기 때문에 다들 비슷하다고 할 수 있다.

2. drawable

상태 drawable : 눌르냐 안누르냐에 따라 다른 모양을 보여줄 수 있다.
transition drawable
shape drawable

3. making drawing xml file

drawable > finger_drawable.xml

xml파일 작성하고,
button > background 속성에
xml 파일을 지정!!!

finger_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/rock" />
    <item android:drawable="@drawable/finger_pressed" />
</selector>

andriod api 기본 속성을 이용해서 작성

shape_Drawable

1. rect_drawable.xml 파일

selector -> shape 로 변경

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size android:width="200dp" android:height="120dp"/>
    <stroke android:width="1dp" android:color="#0000ff"/>
    <solid android:color="#aaddff"/>
    <padding android:bottom="1dp"/>
</shape>

작성한 사각형

tips
android studio에서 그냥 버튼을 놓으면 계속 보라색으로 보인다
이때,
button을
androidx.appcompat.widget.AppCompatButton 로 변경하면 된다.

background_drawable

gradient를 drawable로 설정해보자

<?xml version="1.0" encoding="utf-8"?>
<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>

constraintLayer의 backgroud에 resource선택으로
drawable선택

border_drawable

xml 파일
drawable은 image가 아니라 graphic을 쓰기 떄문에 더 깔끔하다

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <stroke android:width="1dp"
                android:color="#b255da"
                />
            <solid android:color="#00000000"
                />
            <size android:width="200dp"
                android:height="100dp"
                />
        </shape>
    </item>
    <item android:top="1dp"
        android:bottom="1dp"
        android:right="1dp"
        android:left="1dp"
        >
        <shape android:shape="rectangle">
            <stroke android:width="1dp"
                android:color="#ff55da"
                />
            <solid android:color="#00000000"/>
        </shape>
    </item>
</layer-list>

결과물

0개의 댓글