소프트웨어개발/Android

[안드로이드] EditText 모양 바꾸기 및 선택시 모양 변경

날개 2020. 1. 21. 15:52

안드로이드에서 EditText 의 모양을 바꾸고 싶을 때가 많습니다.

최근의 안드로이드에서는 EditText의 기본적인 모양이 테마에 의해 일반적으로 언더바 형태이죠.


여기서는 약간 코너에 라운드가 있는 사각형의 모양으로 바꿀겁니다.

또한 선택되었을 때 (포커스가 잡혀 있을때) 사각형의 색상도 바꿔줄 것입니다.



(변경전)


(변경후)




1. res/drawable 에 xml 파일 하나 추가 


res/drawable 에 EditText의 모양을 지정할 적당한 이름의 xml 파일을 추가합니다.

여기서는 edittext_rounded_corner_rectangle.xml 이라고 하겠습니다.



2. 아래의 샘플과 같은 요령으로, 원하는 형태의 EditText 형태를 작성합니다.



<?xml version="1.0" encoding="utf-8"?>

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

    

    <!-- 에디트텍스트가 포커스를 받았을때의 모양 및 색상 -->

    <item android:state_focused="true">

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

            <stroke

                    android:width="1dp"

                    android:color="#5555FF" />

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

            <solid

                    android:color="#FFFFFF" />

        </shape>


    </item>

    

    <-- EditText 가 포커스를 받지 않은 일반 상태일 때의 모양 및 색상 -->

    <item android:state_focused="false">

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

            <stroke

                    android:width="1dp"

                    android:color="#EEEEEE" />

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

            <solid

                    android:color="#FFFFFF" />

        </shape>


    </item>

</selector>



3. 모양의 변경을 원하는 EditText의 background 속성을 위에서 작성한 xml 이름으로 변경.


<EditText

.

.

.

background="@drawable/edittext_rounded_corner_rectangle"

,

,

,

/>


이제 적용된 것을 볼 수 있을 것입니다.



끝.




(C) 2020 WingsNote.com (무단 복제 및 게시 금지, 링크 허용)