मैंने हाल ही में एक परिपत्र इमेज व्यू क्लास बनाने के लिए एक छवि दृश्य से विस्तार किया है जो एक रंगीन सीमा के साथ छवि परिपत्र बनाता है। इस कैनवास है कि में पारित हो जाता है पर बनाकर OnDraw (कैनवास) विधि के माध्यम से किया जाता है:कस्टम इमेज व्यू क्लास पिकासो छवि डाउनलोडिंग लाइब्रेरी के साथ काम नहीं कर रहा है
//load the bitmap
loadBitmap();
// init shader
if(image !=null)
{
shader = new BitmapShader(Bitmap.createScaledBitmap(image, viewWidth + (borderWidth * 2), viewHeight + (borderWidth * 2), true), Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
paint.setShader(shader);
int circleCenter = viewWidth/2;
// circleCenter is the x or y of the view's center
// radius is the radius in pixels of the cirle to be drawn
// paint contains the shader that will texture the shape
canvas.drawCircle(circleCenter + borderWidth, circleCenter + borderWidth, circleCenter + borderWidth, paintBorder);
canvas.drawCircle(circleCenter + borderWidth, circleCenter + borderWidth, circleCenter, paintBackground);
canvas.drawCircle(circleCenter + borderWidth, circleCenter + borderWidth, circleCenter, paint);
}
तो यह थोड़ा काम करता है जब एक drawable या बिटमैप के माध्यम से छवि स्थापित कर लिया। मैंने इसे भी बढ़ाया है ताकि मैं इसे Google के वॉली नेटवर्क इमेज व्यू के साथ उपयोग कर सकूं जो काम करता है।
मेरी समस्या तब आती है जब मैं कोशिश करता हूं और हमें मेरी सर्कुलर इमेज व्यू क्लास पिकासो छवि डाउनलोड लाइब्रेरी के साथ-साथ मैं इसे वॉली के विकल्प के रूप में देख रहा हूं। BitmapDrawable प्राप्त करते समय पहली पंक्ति पर मेरे loadBitmap() फ़ंक्शन में क्लासकास्ट अपवाद क्या होता है।
private void loadBitmap()
{
BitmapDrawable bitmapDrawable = (BitmapDrawable) this.getDrawable();
if(bitmapDrawable != null)
image = bitmapDrawable.getBitmap();
}
पिकासो ने चित्र डाउनलोड करने से पहले यह प्लेसहोल्डर छवि को ठीक से ठीक कर दिया है। लेकिन जैसे ही पिकासो द्वारा छवि डाउनलोड की गई है, यह क्लासकास्टएक्सप्शन के साथ बिटमैपड्रायबल के बजाय getDrawable() रिटर्न और पिकासो ड्रावेबल के रूप में विफल हो जाती है।
मैं अपने परिपत्र इमेज व्यू क्लास में ऑनड्रा (कैनवास) विधि में छवि को गोल करने के लिए काम रखना चाहता हूं क्योंकि यह पिकासो के साथ छवि दृश्य को सेट करते समय प्रक्रिया को करने के विपरीत अच्छी तरह से निहित और स्वचालित है । क्या यह संभव है?
अग्रिम धन्यवाद।
यह हर बार एक नया बिटमैप बनाता है, नहीं? – secureboot
मदद के लिए DesertIvy, droidx और जेक व्हार्टन धन्यवाद। जिस परियोजना के लिए यह था, उसे पकड़ लिया गया था और अब समस्या पर वापस आ रहा है। मैंने उपर्युक्त कामों के साथ उपरोक्त कोशिश की है। –