一個新手問題Android - 是否可以直接在層列表XML定義中聲明alpha遮罩?
我有這個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 alpha通道像這樣剪取的圖像:
這有可能直接在XML中,或我具有由代碼做呢?
謝謝你的建議;)
更新: 在我使用的代碼替換整個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 –