2011-11-30 16 views
15
<LinearLayout 
      android:layout_width="fill_parent" android:layout_height="wrap_content" 
      android:orientation="vertical" android:background="@drawable/settings_border" android:padding="1dp" 
      android:layout_marginLeft="15dip" android:layout_marginRight="15dip" android:layout_marginTop="5dip"> 
      <RelativeLayout android:id="@+id/map_refresh" 
       android:layout_height="fill_parent" android:layout_width="wrap_content" 
       android:background="@drawable/settings_selector_up" 
       android:padding="15dp"> 
       <TextView android:id="@+id/Text1" 
        android:layout_height="wrap_content" android:layout_width="wrap_content" 
        android:text="Map refresh period"> 
       </TextView> 
       <TextView android:id="@+id/TextView09" 
        android:layout_height="wrap_content" android:layout_width="wrap_content" 
        android:text="1 min" 
        android:layout_alignParentRight="true" 
        android:paddingRight="5dp"> 
       </TextView> 
      </RelativeLayout> 

      <RelativeLayout android:id="@+id/own_location" 
       android:layout_height="fill_parent" android:layout_width="wrap_content" 
       android:padding="15dp" 
       android:background="@drawable/settings_selector_mid"> 
       <TextView android:id="@+id/Text1" 
        android:layout_height="wrap_content" android:layout_width="wrap_content" 
        android:text="Own location update period"> 
       </TextView> 
       <TextView android:id="@+id/TextView09" 
        android:layout_height="wrap_content" android:layout_width="wrap_content" 
        android:text="1 min" 
        android:layout_alignParentRight="true" 
        android:paddingRight="5dp"> 
       </TextView> 
      </RelativeLayout> 

में नीचे सीमा जोड़ने के लिए कैसे मैं relativelayout में केवल नीचे सीमा सेट करना चाहता हूँ। मैं सूचीदृश्य शैली को विस्थापित करना चाहता हूं लेकिन सूचीदृश्य का उपयोग नहीं करना चाहता हूं। आइए कहें कि प्रत्येक listitem relativlayout है। मैं केवल नीचे की सीमा निर्धारित करना चाहता हूं, इसलिए यह एक सूचीदृश्य के विभक्त की तरह दिखता है।relativelayout

+0

यहाँ एक बहुत ही इसी तरह के सवाल का मेरा उत्तर है:

<LinearLayout android:id="@+id/searchWrapper" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="5dp" android:paddingBottom="5dp" android:background="@drawable/bottom_gray_border" android:layout_alignParentTop="true"> <EditText android:id="@+id/searchEditText" style="@style/EditTextSearch" android:hint="@string/find" android:layout_marginLeft="5dp"/> </LinearLayout> 

मैं यहाँ से विचार आया:

यह कैसे लेआउट एक्सएमएल लग रहा है की तरह है। समस्या हल्के सीधी लाइब्रेरी के साथ हल हो जाती है। http://stackoverflow.com/a/30802089/3649279 – PAD

+0

कृपया मेरे उत्तर यहां आज़माएं [BorderedRelativeLayout] (https://stackoverflow.com/a/45959525/6258971) – suulisin

उत्तर

12

मुझे उम्मीद है कि मैंने जो कहा है उसे समझ लिया है।

रेस में

फ़ोल्डर एक नया फ़ोल्डर (आप पहले से ही यह नहीं है, तो) drawable नामित

वहाँ एक xml "borders.xml" नाम बनाने

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true"><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
     <gradient android:angle="90" android:centerColor="#6da23f" android:endColor="#8bc45d" android:startColor="#2f481c" /> 

      <stroke android:width="2dp" android:color="#999999" /> 

      <padding android:bottom="4dp" android:left="3dp" android:right="3dp" android:top="6dp" /> 

      <corners android:radius="10px"/> 
     </shape> 
    </item> 
    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 
      <gradient android:angle="90" android:centerColor="#6da23f" android:endColor="#8bc45d" android:startColor="#4c8a39" /> 

      <stroke android:width="1dp" android:color="#FFFFFF" /> 

      <padding android:bottom="4dp" android:left="3dp" android:right="3dp" android:top="6dp" /> 

      <corners android:radius="10px"/> 
     </shape> 
    </item> 
</selector> 

आप आगे संपादित कर सकते हैं बनाने के जैसा आपको पसंद। फिर आउटलाइन से लेआउट का चयन करें और पृष्ठभूमि गुणों पर क्लिक करें, और आपके द्वारा बनाई गई सीमाएं xml चुनें।

यह वैकल्पिक रूप से सभी 4 के लिए सीमाओं का निर्माण करेगा, आप एक सरल

<View android:layout_width="1dip" 
    android:layout_height="fill_parent" 
    android:background="#FFFFFF" /> 

लाइन जोड़ सकते हैं और अपने लेआउट के सबसे अंत में जोड़ सकते हैं और अपनी पसंद के रंग/आकार बदल सकते हैं।

+9

यह सभी 4 सीमाओं को दिखाई देता है, न केवल नीचे। –

0

एक सीमा प्रदर्शित करने के लिए एक आसान तरीका एक क्षैतिज LinearLayout बनाने के लिए, और सीमा आप चाहते हैं के अनुसार इसकी पृष्ठभूमि रंग और ऊंचाई निर्धारित करने के लिए है।

+1

मुझे नहीं लगता कि यह एक अच्छा विचार है: एक LinearLayout सीमा बनाने के लिए उपयोग नहीं किया जा रहा है ... – mithrop

+0

नहीं, यह एक अच्छा तरीका नहीं है –

+0

एक आसान तरीका है, और आपको अपनी सीमा पर कुछ गुण मिलते हैं। – Charleston

8
<?xml version="1.0" encoding="UTF-8"?> 

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke 
     android:width="1dip" 
     android:color="#FF8000" /> 

    <solid 
     android:color="#00FFFFFF" 
     android:paddingLeft="10dip" 
     android:paddingTop="10dip"/> 

    <corners android:radius="10px"/> 

    <padding 
     android:left="10dip" 
     android:top="10dip" 
     android:right="10dip" 
     android:bottom="10dip" /> 
</shape> 

आप रेस/drawable फ़ोल्डर में borderframe.xml के रूप में इस बचा सकता है (इसे बनाने के अगर यह does not अभी तक अस्तित्व में), और इसलिए की तरह इसे संदर्भ: android:background="@drawable/borderframe"

10

किसी कारण से अन्य समाधान मेरे लिए काम नहीं करते थे - सभी सीमाओं को दिखाया गया था कि मैंने इसे कैसे बदला। यह काम किया:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape 
      android:shape="rectangle"> 
      <stroke android:width="1dp" android:color="@color/gray" /> 
      <solid android:color="@color/gray" /> 
     </shape> 
    </item> 

    <item android:bottom="1dp"> 
     <shape 
      android:shape="rectangle"> 
      <stroke android:width="1dp" android:color="@color/white" /> 
      <solid android:color="@color/white" /> 

     </shape> 
    </item> 
</layer-list> 

बॉर्डर का रंग ग्रे (मेरे उदाहरण में LinearLayout) और पृष्ठभूमि सफेद कंटेनर के लिए है। सीमा को मोटा बनाने या शीर्ष/बाएं/दाएं सीमा पर सीमा बनाने के लिए आप बस दूसरी वस्तु को बदल सकते हैं। Is there an easy way to add a border to the top and bottom of an Android View?

+0

मेरे लिए सही काम करता है – akohout

+0

मैं बस नीचे सीमा जोड़ना चाहता हूं, इसमें सभी 4 सीमाएं शामिल हैं। –

+0

यह वह है जो मेरे लिए काम करता है, अंत में, धन्यवाद! – OneThreeSeven

संबंधित मुद्दे