그러냐

안드로이드 레이아웃 border 넣기 본문

android

안드로이드 레이아웃 border 넣기

관절분리 2018. 10. 30. 14:43
반응형

안드로이드에서 테두리를 설정하는 방법은 

TextView나 Image뷰 등을 넓이나 높이를 맞추고 두께를 1dp로 설정하고 백그라운드값을 주는방법도 가능하지만, 효율도 좋지 않고 매번 그렇게 테두리마다 설정해주는것은 번거로울수 있습니다.


뷰를 이용한 테두리 대신 xml을 이용하여 배경과 테두리를 설정할수 있습니다.

하나의 xml파일을 만들어두면 여러가지 뷰에서 활용 할수 있다는 장점이 있습니다.


먼저 drawable 폴더에서 new > xml 을 통해 xml을 생성하고 파일명은 본인이 이후에 다시 사용할때 식별 가능한 이름을 지정해두시면 됩니다.



아래에만 테두리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <item
        android:bottom="1dp"
        android:left="-2dp"
        android:right="-2dp"
        android:top="-2dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="#dcdcdc" />
 
            <solid android:color="#FFF" />
        </shape>
    </item>
 
</layer-list>
cs


아래위로 테두리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <item
        android:bottom="1dp"
        android:left="-2dp"
        android:right="-2dp"
        android:top="1dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="#dcdcdc" />
 
            <solid android:color="#FFF" />
        </shape>
    </item>
 
</layer-list>
cs


좌우상하 모두 테두리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <item
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="#dcdcdc" />
 
            <solid android:color="#FFF" />
        </shape>
    </item>
 
</layer-list>
cs


item에서 bottom left right top에서 테두리의 두께를 지정할수 있는데, 여기서 -를 주게 되면 해당 부분은 테두리가 사라집니다.


stroke는  테두리의 두께와 색상을 지정합니다.

solid는 배경색상을 지정합니다.


이것을 drawable 폴더에 두고, 테두리를 사용할 뷰에서 android:background="@drawable/파일명" 으로 지정하시거나

자바코드에서 동적으로 사용할 경우

view.setBackgroundResource(R.drawable.파일명);

으로 지정 할 수 있습니다.



출처: http://wimir-dev.tistory.com/44 [[위미르 개발팀] Android, iOS , Web 제작]

반응형