[안드로이드/Android] EditText 효과 정리

SooYeon Yeon·2022년 1월 6일
0

안드로이드/Android

목록 보기
13/25

현재는 style.xml 에서 themes.xml로 바뀐 듯 하다.

아무튼 여기서 style 태그 안에서

<item name="colorAccent">@color/primary</item>
<item name="android:textCursorDrawable">@color/primary</item>
<item name="android:textColorHighlight">@color/primary</item>
<item name="android:editTextColor">@color/black1</item>

이런식으로 하면 효과가 적용된다.

내용
포커스 상태의 밑줄 색colorControlActivated
포커스 아닌 상태의 밑줄 색colorControlNormal
손잡이 부분 색상android:textSelectHandle / colorAccent
텍스트 선택시 하이라이트android:textColorHighlight
커서 색android:textCursorDrawable
텍스트 색android:textColor

editText background 속성을 주었을 경우 background의 테두리를 포커스에 따라 색을 다르게 하고 싶은 경우가 있을 수 있다.

이럴 경우

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- EditText가 포커스를 받을 때    -->
    <item android:state_focused="true">
        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
            <stroke android:width="2dp" android:color="@color/primary" />
            <solid android:color="@color/white" />
            <corners android:radius="2dp" />
            <padding android:bottom="7dp" android:left="16dp" android:right="220dp" android:top="7dp"></padding>
        </shape>
    </item>

    <!-- EditText가 포커스를 받지 않을 때    -->
    <item android:state_focused="false">
        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
            <stroke android:width="2dp" android:color="@color/dbdbdb" />
            <solid android:color="@color/white" />
            <corners android:radius="2dp" />
            <padding android:bottom="7dp" android:left="16dp" android:right="220dp" android:top="7dp"></padding>
        </shape>
    </item>

</selector>

다음과 같이 코드를 사용하면 된다.

0개의 댓글