मैंने यहां बताए गए तरीकों से एक अलग दृष्टिकोण लिया, और यह वास्तव में अच्छी तरह से काम कर रहा है, इसलिए मैं इसे साझा करना चाहता था।
मैं एक शैली का उपयोग कर रहा हूँ बाईं ओर पाठ के साथ एक कस्टम बटन बनाने के लिए और दाईं ओर पाठ। बस नीचे दिए गए 4 "आसान चरणों" का पालन करें:
I. कम से कम 3 अलग-अलग PNG फ़ाइलों और आपके पास मौजूद टूल का उपयोग करके अपने 9 पैच बनाएं: /YOUR_OWN_PATH/android-sdk-mac_x86/tools///99patch इसके बाद आपके पास होना चाहिए:
button_normal.9.png, बटन_focused.9.png और बटन_pressed.9.png
फिर 24x24 PNG आइकन डाउनलोड या बनाएं।
ic_your_icon.png
अपने Android प्रोजेक्ट पर सभी ड्रा करने योग्य / फ़ोल्डर में सहेजें।
द्वितीय। ड्रा करने योग्य / फ़ोल्डर के अंतर्गत अपनी परियोजना में बटन_सेक्टोर.एक्सएमएल नामक एक XML फ़ाइल बनाएँ। राज्यों को इस तरह होना चाहिए:
<item android:state_pressed="true" android:drawable="@drawable/button_pressed" />
<item android:state_focused="true" android:drawable="@drawable/button_focused" />
<item android:drawable="@drawable/button_normal" />
तृतीय। मूल्यों / फ़ोल्डर पर जाएं और स्टाइल खोलें। या बनाएँ और फ़ाइल बनाएँ। निम्न XML कोड बनाएँ:
<style name="ButtonNormalText" parent="@android:style/Widget.Button">
<item name="android:textColor" >@color/black</item>
<item name="android:textSize" >12dip</item>
<item name="android:textStyle" >bold</item>
<item name="android:height" >44dip</item>
<item name="android:background" >@drawable/button_selector</item>
<item name="android:focusable" >true</item>
<item name="android:clickable" >true</item>
</style>
<style name="ButtonNormalTextWithIcon" parent="ButtonNormalText">
<item name="android:drawableLeft" >@drawable/ic_your_icon</item>
</style>
ButtonNormalTextWithIcon एक "बाल शैली" है क्योंकि यह ButtonNormalText ("मूल शैली") का विस्तार कर रही है।
ध्यान दें कि ButtonNormalTextWithIcon शैली में drawableLeft को बदलते हुए, drawableRight, drawableTop या drawableBottom में, आप टेक्स्ट के संबंध में आइकन को अन्य स्थिति में रख सकते हैं।
चतुर्थ। उस लेआउट / फ़ोल्डर पर जाएं जहां आपके पास UI के लिए अपना XML है और उस बटन पर जाएं जहां आप शैली को लागू करना चाहते हैं और इसे इस तरह बनाएं:
<Button android:id="@+id/buttonSubmit"
android:text="@string/button_submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/ButtonNormalTextWithIcon" ></Button>
और ... आवाज! आपको बाईं ओर एक छवि के साथ अपना बटन मिला है।
मेरे लिए, यह इसे करने का बेहतर तरीका है! इस तरह से करने के कारण आप उन आइकन से अलग बटन के पाठ आकार को प्रबंधित कर सकते हैं, जिन्हें आप प्रदर्शित करना चाहते हैं और शैलियों के उपयोग से एंड्रॉइड यूआई दिशानिर्देशों का सम्मान करने वाले विभिन्न आइकन के साथ कई बटन के लिए एक ही पृष्ठभूमि को उपयोग करने योग्य हैं।
आप अपने ऐप के लिए एक थीम भी बना सकते हैं और इसमें "पैरेंट स्टाइल" जोड़ सकते हैं ताकि सभी बटन समान दिखें, और "चाइल्ड स्टाइल" को केवल उस आइकन के साथ लागू करें जहाँ आपको इसकी आवश्यकता है।