2013-01-16 8 views
5

दो आसन्न ग्राफ़िक बटन हैं। यदि मैं निर्देशांक की गणना की विधि का उपयोग करता हूं तो TouchEvent स्पर्श करें, मुझे निर्देशांक की एक बड़ी श्रृंखला बनाना है। शायद एक और तरीका है?एक समोच्च बहुभुज द्वारा बटन कैसे सेट करें? एंड्रॉइड

ImageButton

+0

यह बिल्कुल ठीक है कि बटन कैसे दिखते हैं? – Luksprog

+0

नहीं, डिज़ाइन समाप्त नहीं हुआ है, अब एक चौराहे पर खड़ा है, अगर मैं अपनी समस्या का हल ढूंढता हूं तो मुझे एक ट्रैपेज़ॉयडल बटन बनाना है, – Roman

उत्तर

7
शायद

नहीं सबसे अच्छा समाधान है, लेकिन आप दो बटन ओवरलैप सकता है प्रत्येक (काला या सफेद) और Button की छवि पारदर्शी बनाने के बाकी छवि का एक हिस्सा का प्रतिनिधित्व (छवियों होगा दोनों बटनों के लिए समान आयाम)। कक्षा को ओवरराइड करने के लिए आपको onTouchEvent विधि स्पर्श करने की आवश्यकता होगी, उस बिंदु के आधार पर जहां स्पर्श पारदर्शी बिंदु या "छवि" बिंदु होता है। मैं एक छोटा सा नमूना परियोजना को दो भागों नीचे की तरह के साथ एक Button (मेरे डिजाइन कौशल पर ध्यान न दें) प्राप्त किए हैं:

enter image description here

आप project here पा सकते हैं, यह बहुत आत्म व्याख्यात्मक है। देखें कि यह आपकी मदद करता है या नहीं।

+1

आपके समाधान के लिए धन्यवाद। यह मेरी मदद की। हालांकि, मुझे आपके नमूने के साथ एक समस्या मिली है। यदि ड्रायबल "wrap_content" में नहीं है (उदाहरण के लिए, fill_parent), तो आपकी प्रोजेक्ट क्रैश हो जाएगी। । बिटमैप ख = Bitmap.createScaledBitmap ( \t \t ((BitmapDrawable) bkg.getCurrent()) getBitmap(), \t \t getWidth(), \t \t getHeight (: मैं उस तरह बिटमैप बनाने के द्वारा यह तय कर दी है), \t \t सच \t); –

+1

@ सेबेस्टियन आप सही हैं, मेरे कोड ने दृश्य के आकार को बदलने पर विचार नहीं किया है (या बिटकमैप स्वयं बड़ा है)। मैंने नमूना को सही किया है और मैं 'बिटमैप' को 'ऑनसाइज चेंज' कॉलबैक में स्केल कर रहा हूं, इसलिए इसमें हमेशा सही आकार होता है। – Luksprog

+0

आपका समाधान बेहतर है कि मेरा (साइज चेंज में इसे करने के लिए)। धन्यवाद फिर से :) हालांकि, मैंने बिटमैप बनाने से पहले इसे फिर से सुधार लिया है, मैंने यह कोड जोड़ा है: // बिटमैप मेमोरी में बहुत सारी जगह लेता है, जितनी जल्दी हो सके मुफ्त मेमोरी \t अगर (mBitmap! = Null) { \t mBitmap.recycle(); \t} –

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