옵션 1 : 도형 드로어 블
레이아웃 또는보기 주변에 배경을 설정할 수있는 테두리를 원하는 경우 가장 간단한 옵션입니다. drawable
폴더에 다음과 같은 XML 파일을 작성하십시오 .
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#8fff93" />
<stroke
android:width="1px"
android:color="#000" />
</shape>
solid
채우기를 원하지 않으면를 제거 할 수 있습니다 . 세트background="@drawable/your_shape_drawable"
레이아웃 / 뷰 .
옵션 2 : 배경보기
여기에 사용한 약간의 트릭이 있습니다. RelativeLayout
있습니다. 기본적으로 뷰 아래에 테두리를 제공하려는 검은 사각형이 있고 그 뷰에 여백이 아닌 패딩을 제공하여 검은 사각형이 가장자리에 표시되도록합니다.
뷰에 투명한 영역이없는 경우에만 제대로 작동합니다. 그렇다면 BorderView
테두리를 그리는 사용자 정의 를 작성하는 것이 좋습니다 . 수십 줄의 코드 일뿐입니다.
<View
android:id="@+id/border"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/image"
android:layout_alignLeft="@+id/image"
android:layout_alignRight="@+id/image"
android:layout_alignTop="@+id/main_image"
android:background="#000" />
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_...
android:padding="1px"
android:src="@drawable/..." />
당신이 궁금해하는 경우, 그것은 수행 과 일을 adjustViewBounds=true
. 당신은 전체의 배경을하려는 경우에는 작동하지 않습니다 RelativeLayout
당신이 작성 중지 버그가 있기 때문에, RelativeLayout
A의가 View
. 이 경우 Shape
드로어 블을 권장합니다 .
옵션 3 : 9 패치
마지막 옵션은 다음과 같이 9 패치 드로어 블을 사용하는 것입니다.
설정할 수있는 모든보기에서 사용할 수 있습니다 android:background="@drawable/..."
. 그리고 예 6x6이 필요합니다-5x5를 시도했지만 작동하지 않았습니다.
이 방법의 단점은 색상을 매우 쉽게 변경할 수 없지만 멋진 테두리 (예 :이 질문에서와 같이 위쪽 및 아래쪽 테두리 만)를 원하면 Shape
드로어 블을 사용 하여 테두리를 만들 수 없을 수도 있습니다 매우 강력하지 않습니다.
옵션 4 : 추가 조회수
뷰 위와 아래에 테두리 만 원하는 경우이 간단한 옵션을 언급하는 것을 잊었습니다. 뷰를 수직으로 배치 LinearLayout
한 다음 (아직없는 경우) 다음 View
과 같이 위와 아래에 빈 s 를 추가 할 수 있습니다.
<View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/>