विकल्प 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
साथ भरने से रोकता है View
। उस स्थिति में मैं Shape
ड्रा करने योग्य की सिफारिश करूंगा ।
विकल्प 3: 9-पैच
एक अंतिम विकल्प इस तरह से 9-पैच ड्रॉबल का उपयोग करना है:
आप इसे किसी भी दृश्य पर उपयोग कर सकते हैं जहाँ आप सेट कर सकते हैं android:background="@drawable/..."
। और हाँ इसे 6x6 करने की आवश्यकता है - मैंने 5x5 की कोशिश की और यह काम नहीं किया।
इस पद्धति का नुकसान यह है कि आप रंगों को बहुत आसानी से नहीं बदल सकते हैं, लेकिन अगर आप फैंसी बॉर्डर्स चाहते हैं (जैसे कि इस सवाल में जैसा कि ऊपर और नीचे एक बॉर्डर है), तो आप उन्हें Shape
ड्रॉ करने योग्य नहीं कर सकते हैं , जो बहुत शक्तिशाली नहीं है।
विकल्प 4: अतिरिक्त विचार
मैं वास्तव में इस सरल विकल्प का उल्लेख करना भूल गया यदि आप केवल अपने दृष्टिकोण से ऊपर और नीचे की सीमा चाहते हैं। आप अपने विचार को एक लंबवत में डाल सकते हैं LinearLayout
(यदि यह पहले से नहीं है) और फिर View
इस तरह से ऊपर और नीचे खाली एस जोड़ें :
<View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/>