Opsi 1: Shape Drawable
Ini adalah opsi paling sederhana jika Anda ingin perbatasan di sekitar tata letak atau tampilan di mana Anda dapat mengatur latar belakang. Buat file XML di drawable
folder yang terlihat seperti ini:
<?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>
Anda dapat menghapus solid
jika Anda tidak ingin isi. Set background="@drawable/your_shape_drawable"
pada tata letak / tampilan Anda.
Opsi 2: Tampilan Latar Belakang
Berikut adalah sedikit trik yang saya gunakan dalam RelativeLayout
. Pada dasarnya Anda memiliki kotak hitam di bawah tampilan yang ingin Anda beri batas, dan kemudian memberikan tampilan itu padding (bukan margin!) Sehingga kotak hitam menunjukkan melalui di tepi.
Jelas ini hanya berfungsi dengan baik jika tampilan tidak memiliki area transparan. Jika ya saya sarankan Anda menulis kebiasaan BorderView
yang hanya menggambar perbatasan - seharusnya hanya beberapa lusin baris kode.
<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/..." />
Jika Anda bertanya-tanya, itu tidak bekerja dengan adjustViewBounds=true
. Namun, itu tidak berfungsi jika Anda ingin memiliki latar belakang secara keseluruhan RelativeLayout
, karena ada bug yang menghentikan Anda mengisi RelativeLayout
dengan a View
. Dalam hal ini saya akan merekomendasikan Shape
digambar.
Opsi 3: 9-patch
Opsi terakhir adalah menggunakan draw-draw 9-patch seperti ini:
Anda dapat menggunakannya pada tampilan apa pun di mana Anda dapat mengatur android:background="@drawable/..."
. Dan ya itu harus 6x6 - Saya mencoba 5x5 dan tidak berhasil.
Kerugian dari metode ini adalah Anda tidak dapat mengubah warna dengan sangat mudah, tetapi jika Anda ingin batas mewah (misalnya hanya perbatasan di bagian atas dan bawah, seperti dalam pertanyaan ini) maka Anda mungkin tidak dapat melakukannya dengan Shape
drawable , yang tidak terlalu kuat.
Opsi 4: Tampilan ekstra
Saya lupa menyebutkan opsi yang sangat sederhana ini jika Anda hanya ingin batas di atas dan di bawah tampilan Anda. Anda dapat menempatkan tampilan Anda secara vertikal LinearLayout
(jika belum) dan kemudian tambahkan View
s kosong di atas dan di bawahnya seperti ini:
<View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/>