underbar — edittext, layout, button… border Customize 아래 경계 부분 선 긋기 android

예상 외로 많은 분들에 경계부분에 선을 잘 못 긋는다. 쉽게 설정하는 방법은 백그라운드를 이용하여 Stroke을 긁거나, Canvas로 그리거나, 라이브러리를 쓰거나, 이미지를 넣거나, 방법은 엄청 많지만.. 제가 생각했을 때는

Bottom Line을 그린다던가 Left line은 drawable에 source file 하나 만들고 정의 해주는게 편하지 않을까 싶다. 요새 취미로 illustrator를 잠깐 보는데 이미지 만들때 여러개 겹쳐서 효과를 주더라. 코드를 보면 비슷하다.

background_border.xml

<?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="3dp" android:color="#5d626d" />
<solid android:color="#3b3f47" />

</shape>
</item>

<item android:bottom="3dp">
<shape
android:shape="rectangle">
<stroke android:width="3dp" android:color="#3b3f47" />
<solid android:color="#00000000" />
</shape>
</item>

</layer-list>

다음과 같이 만들어주고, Edittext에 이를적용한다 가정하면..

<EditText
android:id="@+id/player_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
android:gravity="center"
android:maxLength="5"
android:hint="플레이어1"
android:padding="10dp"
android:paddingLeft="5dp"
android:textColorHint="@color/tab_text_color"
android:background="@drawable/edit_controller_background"
android:textSize="12sp"
android:textColorHighlight="@color/white"
android:textColor="@color/tab_text_not_act" />

이런 방식으로 하면 EditText아래 선이 그어져있는 걸 볼 수 있다. 솔직히 Edittext는 필요가 없다. 왜냐면 기본으로 제공해주고 paddingbottom속성이나 기타 등등 속성들을 이용하면 충분히 커스터마이징이 되기 때문이다. 레이아웃 간의 사이에서 구분을 할 때 필요하다.