original question के अनुसार, अंतिम परिणाम एक गोलाकार-रेक्ट png
ImageView
में एक प्राकृतिक दिखने वाली ड्रॉप छाया के साथ है।एंड्रॉइड के ड्रॉ बिटमैप को केवल काले छवियों को चित्रित करने से कैसे रोकें?
मेरे पास छाया काम कर रही है, लेकिन जब यह खींचती है, तो यह पूरी छवि को काला बनाती है।
मैं काले होने जब छाया जोड़ने से मूल छवि (निश्चित रूप से नहीं काला) कैसे रोक सकते हैं?
BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Canvas c = new Canvas(shadowImage);
c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);
imageView.setImageBitmap(shadowImage);
अद्यतन:
मैं सही रंग अंतरिक्ष के लिए की प्रतिलिपि के बारे में जोश के सुझाव को लागू किया और अब यह महान काम करता है! भविष्य के खोजकर्ताओं के लिए, यह कोड छवि दृश्य पर एक ड्रॉप छाया उत्पन्न करता है। वांछित प्रभाव प्राप्त करने के लिए आप एक्स और वाई के साथ-साथ बाहरी स्थिरता के साथ खेल सकते हैं।
BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Bitmap shadowImage32 = shadowImage.copy(Bitmap.Config.ARGB_8888, true);
Canvas c = new Canvas(shadowImage32);
c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);
imageView.setImageBitmap(shadowImage32);
बहुत बढ़िया! मुझे खुशी है कि सभी प्रयासों का भुगतान किया गया। – Josh
छाया के रंग को बदलने के लिए मुझे क्या करना है? – Frame91