0

ライブ壁紙に 2 つの画像を重ねる必要があります。オーバーレイ画像は、「追加」オーバーレイに設定する必要がある jpg です。透明度を計算するのではなく、ピクセル値を追加します。どうすればアンドロイドでこれを達成できますか?

4

2 に答える 2

2

Android のBitmapおよびDrawableクラスをCanvasと混合して利用し、次のスニペットのようなことを試すことができます。

public static Drawable mergeImage(Drawable orig, Drawable over, int left, int top) {
    Bitmap original = ((BitmapDrawable)orig).getBitmap();
    Bitmap overlay = ((BitmapDrawable)over).getBitmap();
    Bitmap result = Bitmap.createBitmap(original.getWidth(), original.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(result);
    Paint paint = new Paint();
    paint.setAntiAlias(true);

    canvas.drawBitmap(original, 0, 0, paint);
    canvas.drawBitmap(overlay, left, top, paint);

    return new BitmapDrawable(result);
}

上記の行を使用して、「オンラインステータス」でオーバーレイされた写真画像グリッドビューをコーディングしました。それがあなたにとってもうまくいくことを願っています。

于 2012-06-17T11:11:54.050 に答える
0

より一般的なアプローチは、必要な PorterDuffMode で PorterDuffXfermode を作成キャンバスで使用するPaintオブジェクトに設定することです。これにより、必要に応じて他の Porter-Duff モードを使用できます。

Paint paint = new Paint();
paint.setAntiAlias(true);
canvas.drawBitmap(original, 0, 0, paint);
paint.setXferMode(new PorterDuffXferMode(PorterDuff.Mode.OVERLAY));
canvas.drawBitmap(overlay, left, top, paint);

私はこれを試していないので、mthamaの答えに進んでください。:)

于 2012-06-17T13:10:23.813 に答える