2016-01-25 8 views
5

मैं एक बटन बनाने की कोशिश कर रहा हूं जो नीचे दिए गए चित्र में दिखाए गए बटन के ऊपर टेक्स्ट व्यू से जुड़ा हुआ है।सामग्री डिजाइन बटन में अतिरिक्त पैडिंग या मार्जिन को कैसे निकालें?

enter image description here

ऊपर दिए गए स्क्रीनशॉट नोट 4 से लिया जाता है और OS संस्करण 5.0.1 है।

नीचे यूआई को प्राप्त करने के लिए कोड का उपयोग किया जाता है।

लेआउट/xyz.xml

<Button 
    android:layout_width="250dp" 
    android:layout_height="50dp" 
    android:theme="@style/myButton" 
    android:text="Cancel"/> 

मान-V21/style.xml

<style name="myButton" parent="@style/Base.Widget.AppCompat.Button"> 
    <item name="android:colorButtonNormal">#3578A9</item> 
    <item name="android:inset">0dp</item> 
    </style> 

लेकिन अगर मैं 5.1.1 संस्करण Nexus4 ओएस में एक ही कोड चलाने के लिए, बटन ले जा रहा है सभी 4 पक्षों के लिए मार्जिन और स्क्रीनशॉट नीचे जैसा दिखता है।

enter image description here

अगर मैं हटाने "एंड्रॉयड: विषय" और प्रदान करते हैं "एंड्रॉयड: पृष्ठभूमि", यूआई पहली छवि की तरह दिखता है। लेकिन यह लहर प्रभाव नहीं देगा। तो यूआई को लहर प्रभाव के साथ पहली छवि के रूप में कैसे प्राप्त करें।

+0

वाई आप अपने xyz.xml में बटन को मार्जिन दे रहे हैं यदि आप टेक्स्टव्यू w/o के नीचे बटन चाहते हैं। –

+0

यह समस्या स्क्रीन के विभिन्न आकार के कारण है जिसका आप परीक्षण कर रहे हैं @sachi –

+0

@ChintanBawa मैंने कोड अपडेट किया है। लेकिन फिर भी यह उम्मीद के रूप में काम नहीं करेगा। मुझे केवल ओएस 5.1.1 और उसके बाद की समस्या का सामना करना पड़ रहा है। – sachi

उत्तर

6

चरण 1: styles.xml

<style name="myColoredButton"> 
     <item name="android:textColor">#FF3E96</item> 
     <item name="android:padding">0dp</item> 
     <item name="android:minWidth">88dp</item> 
     <item name="android:minHeight">36dp</item> 
     <item name="android:elevation">1dp</item> 
     <item name="android:translationZ">1dp</item> 
     <item name="android:background">#FF0000</item> 
    </style> 

यहाँ आप textcolor (मैं ऊपर # FF3E96 का इस्तेमाल किया है) और पृष्ठभूमि रंग (मैं # FF0000 का इस्तेमाल किया है) अपने बटन के लिए बदल सकते हैं में नीचे दिए गए कोड रखो। आप android:colorButtonNormal का उपयोग कर अपने बटन से संबंधित लेआउट xml से टेक्स्ट रंग मूल्यों को ओवरराइड भी कर सकते हैं।

चरण 2: ड्रॉएबल फ़ोल्डर के तहत एक नया एक्सएमएल फ़ाइल बनाएँ और जोड़ने के लिए निम्न कोड: मैं primary.xml के रूप में मेरे एक्सएमएल फ़ाइल नामित

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="@color/colorPrimary"> 
    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <corners android:radius="1dp" /> 
      <solid android:color="#8B8386" /> 
     </shape> 
    </item> 
</ripple> 

चरण 3: इस प्रकार अपने बटन में शैली और drawable का प्रयोग करें ।

<Button 
     style="@style/myColoredButton" 
     android:layout_width="250dp" 
     android:layout_height="50dp" 
     android:text="Cancel" 
     android:gravity="center" 
     android:background="@drawable/primary_round" 
     android:colorButtonNormal="#3578A9" /> 

आशा है कि यह आपकी समस्या हल करेगी।

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