2011-09-29 13 views
14

मेरे पास तीन 9-पैच पीएनजी हैं जो एक साथ बटन (बाएं तरफ, मध्य, दाएं तरफ) के लिए पृष्ठभूमि बनाते हैं।मैं एकाधिक छवियों से कैसे आकर्षित कर सकता हूं?

res/drawable/button_background.xml:

<?xml version="1.0" encoding="utf-8"?> 
<nine-patch xmlns:android="http://schemas.android.com/apk/res/android" 
android:src="@drawable/button_left_side" /> 

<nine-patch android:src="@drawable/button_middle" /> 

<nine-patch android:src="@drawable/button_right_side" /> 

res/layout/main.xml:

<button android:background="@drawable/button_background" /> 
: मैं एक drawable जो मैं XML में एक बटन के लिए पृष्ठभूमि, की तर्ज पर कुछ के रूप में निर्दिष्ट कर सकते हैं में इन तीन छवियों को एक साथ गठबंधन करने के लिए चाहते हैं

क्या यह संभव है?

उत्तर

33

कुछ परीक्षण-और-त्रुटि के बाद, मैं समस्या को संतोषजनक तरीके से हल करने में सक्षम था। मैं बस एक परत-सूची drawable कार्यान्वित इस प्रकार है:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/btn_left" android:left="0px" /> 
    <item android:drawable="@drawable/btn_middle" 
     android:left="26px" android:right="26px" /> 
    <item android:drawable="@drawable/btn_right" android:right="0px" /> 
</layer-list> 

कहाँ 26px मूल्यों पिक्सेल में दो बटन पक्ष छवियों की चौड़ाई है।

इस drawable का उपयोग करने के लिए बस किसी भी अन्य drawable की तरह इसे कहते:

<bitmap android:src="@drawable/button_background" /> 

यह ठीक काम करता है कि कैसे आप, के लिए यह उम्मीद करेंगे बीच सामान्य रूप में विस्तार हो रहा वांछित चौड़ाई फिट करने के लिए के साथ, और सभी तीन छवियों वांछित ऊंचाई फिट करने के लिए विस्तार। मुझे आशा है कि दूसरों को इससे फायदा हो सकता है!

+3

"पीएक्स" के बजाय "डीपी" का उपयोग होने पर यह बेहतर परिणाम देगा। पीएक्स का उपयोग करने से उच्च घनत्व वाले उपकरणों में बहुत छोटे बाएं और दाएं बटन होंगे। – seema

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