2012-01-23 14 views
7

मैंने सूची आइटम पृष्ठभूमि के रूप में इसका उपयोग करने के लिए एक आयताकार आकार बनाया है। मेरी समस्या यह है कि स्ट्रोक दृश्य सीमा का पालन नहीं करता है लेकिन स्ट्रोक चौड़ाई +/- का मार्जिन दें। यहाँएंड्रॉइड: एक आकार में स्ट्रोक स्ट्रोक चौड़ाई का मार्जिन बनाएं

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:innerRadiusRatio="1" 
    android:shape="rectangle" > 
    <solid android:color="@color/deminoir" /> 
    <stroke 
     android:width="4dp" 
     android:color="@color/deminoir" /> 
    <padding 
     android:bottom="4dp" 
     android:left="4dp" 
     android:right="4dp" 
     android:top="4dp" /> 
</shape> 

और मेरी शैली की एक्सएमएल है:

यहाँ मेरी आकार की एक्सएमएल है

<style name="champ"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:orientation">vertical</item> 
    <item name="android:background">@drawable/bordurechamp</item> 
</style> 

और अंत में मेरी सूची में आइटम देखने के xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/champ" > 


    <!-- titre --> 
    <TextView 
     android:id="@+id/titre" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/deminoir" 
     android:padding="5dip" 
     android:text="titre" 
     android:textAppearance="@android:style/TextAppearance.Large" /> 

    <!-- Contenu --> 
    <TextView 
     android:id="@+id/valeur" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:padding="5dip" 
     android:text="valeur" 
     android:textAppearance="@android:style/TextAppearance.Medium" 
     /> 

</LinearLayout> 

उत्तर

3

ठोस रंगों का उपयोग कर हल हल!

+2

क्या आप नमूना कोड पेस्ट कर सकते हैं? – developer82

+0

बस अपने रंग को परिभाषित करने के लिए केवल 6 (और 8) अंकों का उपयोग करके ठोस रंग का उपयोग करें। – Anthony

3

मैं एक ही समस्या थी और इस तरह इसे हल:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@color/background" /> 
      <corners android:radius="2dp"/> 
      <stroke 
       android:width="4dp" 
       android:color="@android:color/black" /> 
     </shape> 
    </item> 
    <item> 
     <shape 
      android:shape="rectangle"> 
      <corners android:radius="2dp"/> 
      <solid android:color="@android:color/transparent" /> 
      <stroke 
       android:width="2dp" 
       android:color="@color/background" /> 
     </shape> 
    </item> 
</layer-list> 

यह दो स्ट्रोक के साथ दो ड्रॉएबल देता है। पहले खींचने योग्य चौड़ाई (चौड़ाई + वांछनीय स्ट्रोक का मार्जिन) के साथ स्ट्रोक है। दूसरा ड्रॉइंग योग्य वांछित मार्जिन की चौड़ाई के साथ केवल स्ट्रोक दिखाई देता है।

2

आप गद्दी मार्जिन के बजाय पारदर्शी उपयोग कर सकते हैं

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape"> 
    <stroke android:width="8dp" android:color="#0000000" /> 
    <padding android:left="2dp" 
     android:top="2dp" 
     android:right="2dp" 
     android:bottom="2dp" /> 
    <solid android:color="@color/white" /> 
</shape> 
1

बस अपने shape एक <layer-list><item> में डालने और <item> की top, bottom, left और right विशेषताओं का मूल्यांकन। नीचे की तरह:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:bottom="4dp" 
     android:left="6dp" 
     android:right="8dp" 
     android:top="10dp"> 
     <shape android:shape="..."> 
      ... 
     </shape> 
    </item> 
</layer-list> 

इसके अलावा, अगर आप padding (नहीं margin) की जरूरत है, Ahmad Aghazadeh answer देखते हैं।

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