初心者の質問Android - レイヤーリストのXML定義内でアルファマスクを直接宣言することはできますか?
私はImageViewのソースとしてこのlayers.xmlを使用しています。 2つの画像、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のアルファチャンネルを使用して画像をクリッピング、マスクとして機能したいと思います:
は、XML内で直接することが可能である、または私はコードでそれをしなければならないのですか?あなたのアドバイスのための
感謝;)
更新: 私は
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を使用してマスクレイヤーを宣言できるかどうか疑問に思っています –