2012-08-15 9 views
16

मेरे ऐप का एकमात्र हिस्सा जो अभी भी सॉफ़्टवेयर प्रदान किया गया है वह एक दृश्य का प्रतिपादन है जहां मुझे एक गोल बिटमैप आकर्षित करने की आवश्यकता है। मैं क्लिपमैथ का उपयोग बिटमैप को क्लिप करने के लिए कर रहा हूं जिसे मुझे गोल आकार में प्रस्तुत करने की आवश्यकता है।एंड्रॉइड क्लिपपैथ हार्डवेयर त्वरित के लिए समकक्ष देखें

मैं समझता हूं कि क्लिपपाथ हार्डवेयर तेज नहीं है, लेकिन मैं एक एल्गोरिदम की तलाश में हूं जो मुझे हार्डवेयर त्वरण का उपयोग करके समकक्ष कार्यक्षमता प्रदान करने की अनुमति देगा।

विशेष रूप से मुझे एक स्रोत बिटमैप का एक गोल क्लिपिंग क्षेत्र बनाने की आवश्यकता है और यह मेरे कैनवास में प्रस्तुत किया गया है।

उत्तर

0

आप इस की कोशिश कर सकते, हालांकि मुझे यकीन है कि नहीं कर रहा हूँ यह हार्डवेयर त्वरित है:

onCreate में

:

onLayout में

साथ:

  • अपने दृश्य के रूप में एक ही आकार के एक बिटमैप बनाने
  • की पर अंदर अपने वृत्त अपने कैनवास, सफेद में, OnDraw में एक स्वच्छ सीमा

के लिए विरोधी उपनाम का उपयोग:

  • ,
  • अब अपनी पेंट कैनवास में सफेद सर्कल के साथ बिटमैप आकर्षित bitmapPaint आप onCreate

बिटमैप केवल चक्र के अंदर रेंडर किया जाना चाहिए में बनाया का उपयोग कर अपने रंग कैनवास के अंदर अपने बिटमैप आकर्षित।

0

यदि आपका बिटमैप बहुत कुछ नहीं बदलता है, तो इसे आकार में एक बार नए बिटमैप में क्लिप करें, और फिर अपने ऑनड्रा में क्लिप्ड बिटमैप खींचें।

यहाँ एक स्रोत बिटमैप

Bitmap bitmap = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); 
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
Canvas canvas = new Canvas(bitmap); 
paint.setColor(Color.RED); 
// Draw your shape here 
canvas.drawCircle(cx, cy, radius, paint); 
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));  
canvas.drawBitmap(sourceBitmap, 0, 0, paint); 
1

से एक चक्र क्लिप करने के लिए कैसे आप clipPath उपयोग करने के लिए आप के रूप में नीचे हार्डवेयर त्वरण को शट डाउन कर सकता है, तो एक उदाहरण है।

<application 
    android:label="@string/application_name" 
    android:hardwareAccelerated="false"> 

और आप एप्लिकेशन, गतिविधि, विंडो और व्यू परतों के बीच हार्डवेयर त्वरण को भी नियंत्रित कर सकते हैं। विस्तृत जानकारी इस Hardware Acceleration article on Android Development web site पर बताती है।

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