[Android Studio] view style

노유성·2023년 7월 1일
0
post-thumbnail

🌞들어가며

버튼을 클릭하면 스타일이 바뀌는 효과를 만들면서 view에 스타일을 넣는 방법을 알아보자.

⭐코드

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="false">
         <shape>
             <solid android:color="@color/purple_500"></solid>
             <corners android:bottomLeftRadius="15dp"
                 android:bottomRightRadius="15dp"
                 android:topLeftRadius="15dp"
                 android:topRightRadius="15dp"/>
             <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
         </shape>
     </item>
    <item android:state_pressed="true">
        <shape>
            <solid android:color="@color/purple_700"></solid>
            <corners android:bottomLeftRadius="15dp"
                android:bottomRightRadius="15dp"
                android:topLeftRadius="15dp"
                android:topRightRadius="15dp"/>
            <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
        </shape>
    </item>
</selector>

위 코드에 대해서 간단하게 설명하면, 먼저 특정 상황에서 어떤 것을 선택할 것인지에 대한 item을 묶어는 selector 태그가 있다. selector 태그에 내에서 특정 상황에 맞는 item을 스타일에 적용하는 것이다.

다음은 item 태그이다. selector 태그와 단짝친구이며 같이 사용된다. 속성값을 주어 만족하면 item 내에 있는 스타일을 적용한다.

그리고 shpae 태그 내에 다양한 태그들, solid, conners, padding 각각 색상, 둥근정도, padding을 지정하는 태그들이 모여있고 이 속성들이 view에 적용이 된다.

위 코드에서는 state_pressed가 true, false 각각 다른 style을 적용하고 있다.

⭐tag

🪐selector

selector 태그는 안드로이드 XML 리소스 파일에서 상태에 따라 다른 그래픽을 선택하는 데 사용되는 태그입니다. selector 태그는 여러 개의 item 태그를 포함하며, 각 item 태그는 특정 상태에 대한 그래픽을 정의합니다.
보통 selector 태그는 버튼이나 뷰의 배경, 텍스트 색상 등을 다른 상태에 따라 변경하는 데 사용됩니다. 예를 들어, 버튼이 눌려진 상태와 눌리지 않은 상태에 따라 다른 배경색을 설정하고 싶을 때 selector 태그를 사용할 수 있습니다.
-chatGPT

🪐item

item 태그는 안드로이드 XML 리소스 파일에서 selector 태그 내에서 사용되는 하위 태그입니다. item 태그는 selector 태그의 다양한 상태에 대한 그래픽 리소스를 정의합니다.
-chatGPT

🪐shape

<shape 태그는 안드로이드 XML 리소스 파일에서 도형 그래픽을 정의하는 데 사용되는 태그입니다. shape 태그를 사용하여 다양한 형태의 도형을 만들고, 색상, 테두리, 그림자 등의 속성을 설정할 수 있습니다.
-chatGPT

shpae 태그 내에서 corners, solid, padding 등을 지정할 수 있다.

profile
풀스택개발자가되고싶습니다:)

0개의 댓글