2010-01-24 10 views
22

मैं एंड्रॉइड पर कैनवास ऑब्जेक्ट पर नौ पैच खींचने की कोशिश कर रहा हूं। अजीब लगता है कि यद्यपि मैंने ड्रॉ 9 पैच टूल का उपयोग करके अपना 9 पैच बनाया है, लेकिन नौ पैच के कन्स्ट्रक्टर को नौ पैच बनाने के लिए "चंक" नामक अतिरिक्त बाइट सरणी की आवश्यकता होती है।कैनवास (एंड्रॉइड) पर ड्राइंग नौ पैच

यह आसान क्यों नहीं है? "खंड" क्या है? और यदि आपने यह स्वयं किया है, तो आप इसके बारे में कैसे गए?

किसी भी मदद की सराहना की।

उत्तर

73

आप आसानी से यह इस तरह से कर सकते हैं:

// Load the image as a NinePatch drawable 
NinePatchDrawable npd = (NinePatchDrawable)Resources.getDrawable(R.drawable.my_nine_patch); 

// Set its bound where you need 
Rect npdBounds = new Rect(...); 
npd.setBounds(npbBounds); 

// Finally draw on the canvas 
npd.draw(canvas); 
+0

लेकिन मैं छवि की जरूरत है एक विशिष्ट आकार फिट करने के लिए। अन्यथा मैं नौ पैच का उपयोग नहीं करता। –

+7

मैंने जो कोड ऊपर रखा है, उसमें ऑब्जेक्ट 'डी' वास्तव में निनपैच ड्रायबल का एक उदाहरण है क्योंकि आपने 9 पैच संसाधन की आईडी को पुनर्प्राप्त करने के लिए दिया है। तो आप NinePatchDrawable एनपीडी = (NinePatchDrawable) डी कर सकते हैं; क्या यह आपके उद्देश्यों के लिए काम नहीं करेगा? –

+0

बस कोशिश की: पूरी तरह से काम करता है। बहुत बहुत धन्यवाद –

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