ตัวเลือกที่ 1: รูปร่าง Drawable
นี่เป็นตัวเลือกที่ง่ายที่สุดถ้าคุณต้องการเส้นขอบรอบ ๆ เค้าโครงหรือมุมมองที่คุณสามารถตั้งค่าพื้นหลัง สร้างไฟล์ XML ในdrawable
โฟลเดอร์ที่มีลักษณะดังนี้:
<?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
View
ในกรณีนั้นฉันขอแนะนำShape
drawable
ตัวเลือก 3: 9-patch
ตัวเลือกสุดท้ายคือการใช้ 9-patchable แบบนี้:
คุณสามารถใช้มันในมุมมองที่คุณสามารถตั้งค่าandroid:background="@drawable/..."
ใด ๆ และใช่มันต้องเป็น 6x6 - ฉันลอง 5x5 และไม่ได้ผล
ข้อเสียของวิธีนี้คือคุณไม่สามารถเปลี่ยนสีได้อย่างง่ายดาย แต่ถ้าคุณต้องการเส้นขอบแฟนซี (เช่นขอบที่ด้านบนและด้านล่างเช่นเดียวกับในคำถามนี้) คุณอาจไม่สามารถทำได้ด้วยShape
drawable ซึ่งไม่ได้มีประสิทธิภาพมาก
ตัวเลือก 4: มุมมองเสริม
ฉันลืมที่จะพูดถึงตัวเลือกที่ง่ายจริงๆถ้าคุณต้องการเส้นขอบด้านบนและด้านล่างมุมมองของคุณ คุณสามารถใส่มุมมองในแนวตั้งLinearLayout
(ถ้ายังไม่ได้เพิ่ม) แล้วเพิ่มView
s ว่างด้านบนและด้านล่างเช่นนี้:
<View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/>