Tùy chọn 1: Hình dạng có thể vẽ
Đây là tùy chọn đơn giản nhất nếu bạn muốn có đường viền xung quanh bố cục hoặc chế độ xem mà bạn có thể đặt nền. Tạo một tệp XML trong drawable
thư mục trông giống như thế này:
<?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>
Bạn có thể xóa solid
nếu bạn không muốn điền. Các thiết lập background="@drawable/your_shape_drawable"
trên bố trí / xem của bạn.
Tùy chọn 2: Chế độ xem nền
Đây là một mẹo nhỏ tôi đã sử dụng trong một RelativeLayout
. Về cơ bản, bạn có một hình vuông màu đen dưới chế độ xem mà bạn muốn tạo đường viền, và sau đó cung cấp cho chế độ xem đó một số phần đệm (không phải lề!) Để hình vuông màu đen hiển thị ở các cạnh.
Rõ ràng điều này chỉ hoạt động đúng nếu chế độ xem không có bất kỳ khu vực trong suốt nào. Nếu có, tôi khuyên bạn nên viết một tùy chỉnh BorderView
chỉ vẽ đường viền - nó chỉ nên là vài chục dòng mã.
<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/..." />
Nếu bạn đang tự hỏi, nó làm việc với adjustViewBounds=true
. Tuy nhiên, nó không hoạt động nếu bạn muốn có một nền tảng trong toàn bộ RelativeLayout
, bởi vì có một lỗi khiến bạn không thể điền RelativeLayout
vào một View
. Trong trường hợp đó, tôi khuyên bạn nên rút thăm Shape
.
Tùy chọn 3: 9 miếng vá
Tùy chọn cuối cùng là sử dụng bản vẽ 9 miếng như thế này:
Bạn có thể sử dụng nó trên bất kỳ chế độ xem nào bạn có thể đặt android:background="@drawable/..."
. Và vâng, nó cần phải là 6x6 - Tôi đã thử 5x5 và nó không hoạt động.
Nhược điểm của phương pháp này là bạn không thể thay đổi màu sắc rất dễ dàng, nhưng nếu bạn muốn có các đường viền lạ mắt (ví dụ: chỉ một đường viền ở trên cùng và dưới cùng, như trong câu hỏi này) thì bạn không thể thực hiện chúng với khả năng Shape
vẽ được , không mạnh lắm.
Tùy chọn 4: Chế độ xem thêm
Tôi quên đề cập đến tùy chọn thực sự đơn giản này nếu bạn chỉ muốn viền trên và dưới chế độ xem của bạn. Bạn có thể đặt chế độ xem của mình theo chiều dọc LinearLayout
(nếu chưa có) và sau đó thêm các ô trống View
ở trên và bên dưới nó như thế này:
<View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/>