एक नौसिखिया प्रश्नएंड्रॉइड - क्या लेयर-सूची एक्सएमएल परिभाषा के भीतर सीधे अल्फा मास्क घोषित करना संभव है?
मेरे पास यह layers.xml है जिसे मैं ImageView के स्रोत के रूप में उपयोग करता हूं। और दो छवियों, mask.png और image.jpg
layers.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/image" android:gravity="center"/>
</item>
<item>
<bitmap android:src="@drawable/mask" android:gravity="center"/>
</item>
</layer-list>
imageView:
<ImageView
android:id="@+id/img_B"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/layers"/>
पल उत्पादन छवि पर सिर्फ png है पर। मैं png एक मुखौटा के रूप में कार्य करने के लिए है, तो जैसे png अल्फ़ा चैनल का उपयोग कर छवि कतरन चाहते हैं:
सीधे कि संभव है एक्सएमएल के भीतर, या मैं कोड से यह करने के लिए क्या है?
आपकी सलाह के लिए धन्यवाद;)
अद्यतन: पल मैं अपने लक्ष्य को हासिल किया पूरे imageView
ImageView img = (ImageView) findViewById(imgID);
Canvas canvas = new Canvas();
Bitmap mainImage = BitmapFactory.decodeResource(getResources(), R.drawable.img);
Bitmap mask = BitmapFactory.decodeResource(getResources(), R.drawable.mask);
Bitmap result = Bitmap.createBitmap(mainImage.getWidth(), mainImage.getHeight(), Bitmap.Config.ARGB_8888);
canvas.setBitmap(result);
Paint paint = new Paint();
paint.setFilterBitmap(false);
canvas.drawBitmap(mainImage, 0, 0, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
canvas.drawBitmap(mask, 0, 0, paint);
paint.setXfermode(null);
img.setImageBitmap(result);
img.invalidate();
जो मुझे यहां इंगित करने का एक अच्छा तरीका था! इस बारे में निश्चित नहीं है, लेकिन मुझे थोड़ा सा देखने दो और आपको वापस मिलें। – Shaunak
आपको इसे एक स्वीकार्य उत्तर के रूप में रखना होगा क्योंकि यह सिर्फ मुझे बचाया है! – DeeV
दिया गया उत्तर मूल प्रश्न का उत्तर नहीं देता है, मैं अभी भी सोच रहा हूं कि परत-सूची xml –