2011-03-11 12 views
6

पर पाठ का संरेखण मैं एक कस्टम बटन बना रहा हूं। मैं बटन पर पाठ की स्थिति सेट करना चाहता हूं।बटन

  • मेरे पास बटन के लिए दो पृष्ठभूमि छवियां हैं (बटन_ऑफ और बटन_ऑन) पहले सामान्य बटन के लिए है और दूसरा फोकस/ऑनप्रेस राज्य पर है।

enter image description here enter image description here

  • अब मैं बटन पर पाठ डाल करने के लिए है तो यह दिखना चाहिए:

enter image description here enter image description here

लेकिन मैं सही सेट करने में असमर्थ हूँ इस पृष्ठभूमि बटन छवि पर पाठ की स्थिति। कृपया इस समस्या को हल करने के लिए अपने सुझाव साझा करें।

+0

इस लिंक [बटन] (http://www.androidpeople.com/button) का पालन करें, यू यहाँ का जवाब मिल जाएगा। और इस वेबसाइट के माध्यम से सर्फ करें आप बहुत उपयोगी सीखेंगे – Prachur

+0

धन्यवाद यह एक उपयोगी लिंक है। –

+2

मुझे लिंक किए गए पृष्ठ पर उत्तर नहीं मिल रहा है। और इसके अलावा, मुझे लगता है कि एक विशिष्ट प्रश्न के उत्तर के रूप में एक लिंक/आलेख संग्रह पोस्ट करना खराब शैली है। अगर उत्तर लेखों में कहीं भी पाया जा सकता है, तो कम से कम लेख पर सीधे लिंक करें। – Hinton

उत्तर

3

आप पृष्ठभूमि के रूप में 9-पैच छवि का उपयोग करने का प्रयास कर सकते हैं। यहां इस बारे में अधिक जानकारी: http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

+0

मैं दूसरा हूं। 9-पैच पहली बात है जो दिमाग में आई है। – trgraglia

+0

लेकिन जैसा कि आप उस बटन छवि टेक्स्ट में देख सकते हैं बटन बटन के केंद्र में नहीं है। वह 5 पिक्सेल अधिक केंद्र है। तो यह कैसे करें? –

+0

जब आप पृष्ठभूमि के रूप में 9-पैच का उपयोग करते हैं, तो आप मैन्युअल रूप से (Google के "draw9patch" टूल के साथ) उस क्षेत्र को परिभाषित करते हैं जो फैला हुआ है, और वह क्षेत्र जहां आपका टेक्स्ट दिखाई देगा। मुझे लगता है कि इसे आपकी समस्या का समाधान करना चाहिए। – sergeytch

1

टेक्स्ट को संरेखित करें, गुरुत्वाकर्षण विकल्प का उपयोग करें! या गद्दी के साथ प्रयास करें

+0

काम नहीं करेगा, हम टेक्स्ट के लिए केवल लेआउट के लिए पैडिंग का उपयोग नहीं कर सकते हैं। गुरुत्वाकर्षण स्थापित करके हम केवल बाएं/दाएं/ऊपर/नीचे/केंद्र संरेखण सेट कर सकते हैं। लेकिन मैं पाठ 5 पिक्सेल और अधिक केंद्र सेट करना चाहता हूं .. –

+0

मैं पाठ के लिए भी पैडिंग का उपयोग करने में सक्षम हूं! – sat

0

कुछ तरीके:

  1. एक बटन को परिभाषित करने और कोशिश android:drawableStart
  2. बटन का विस्तार करने और अपने आप को एक LinearLayout कि एक पृष्ठभूमि के साथ एक टेक्स्ट और चित्र पकड़ परिभाषित करने के लिए
  3. कोशिश आकर्षित आपके बटन का, उनमें से दोनों को 1 का वजन सेट करें और उन्हें LinearLayout के अंदर रखें और उन्हें onClick आश्वस्त नहीं कर सकता 3 बिना किसी ट्विक या दो के काम करेगा लेकिन यह कोशिश करने लायक है
1
<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@android:drawable/arrow_down_float" 
    android:background="@drawable/btn_all_bg" 
    android:text="All"> 
Button> 

आप एक बटन पर आइकन जोड़ने के लिए drawableLeft/सही/ऊपर/नीचे का उपयोग कर सकते हैं और पाठ स्वचालित रूप से समायोजित करेगा।

+0

सर्वोत्तम और आसान तरीका। जवाब के लिए धन्यवाद –

3

आप एक्सएमएल फ़ाइल में इन गुणों को सेट कर सकते हैं `

<Button 
    android:id="@+id/button1" 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:drawablePadding="5dp" 
    android:drawableLeft="@android:drawable/ic_lock_lock" 
    android:text="All" 
    android:gravity="center"/> 

`

0

आप एक बटन style="@android:style/Widget.Button" के रूप में लेआउट का उपयोग कर सकते हैं, और यह कॉन्फ़िगर के रूप में आप चाहते हैं।

अपने xml फ़ाइल में पेस्ट इस:

<LinearLayout 
android:id="@+id/button" 
style="@android:style/Widget.Button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 
<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="2dp" 
    android:text="TextView" /> 

</LinearLayout>