4

他の画像の上に画像(半透明)を設定するにはどうすればよいですか?
新しいビットマップを作成して保存する必要があります。

皆さんありがとう。

4

3 に答える 3

8
    Bitmap bitmap1 = null; // define it
    Bitmap bitmap2 = null; // define it

    Bitmap resultBitmap = Bitmap.createBitmap(bitmap1.getWidth(), bitmap1.getHeight(), Bitmap.Config.ARGB_8888);

    Canvas c = new Canvas(resultBitmap);

    c.drawBitmap(bitmap1, 0, 0, null);

    Paint p = new Paint();
    p.setAlpha(127);

    c.drawBitmap(bitmap2, 0, 0, p);

    // Your final bitmap is resultBitmap
于 2012-09-02T10:32:39.433 に答える
2

あなたがする必要があるのは、2つのビットマップを取り、それらの
境界を設定することです。次に、両方をキャンバスに描画する必要があります。画像を半透明に設定する場合は、画像のアルファを設定する必要があります。

これは例です:

    Bitmap bitmap = null;
    try {

        bitmap = Bitmap.createBitmap(500, 500, Config.ARGB_8888);
        Canvas c = new Canvas(bitmap);
        Resources res = getResources();


        Bitmap bitmap1 = BitmapFactory.decodeResource(res, R.drawable.test1); //blue

        Bitmap bitmap2 = BitmapFactory.decodeResource(res, R.drawable.test2); //green
        Drawable drawable1 = new BitmapDrawable(bitmap1);
        Drawable drawable2 = new BitmapDrawable(bitmap2);


        drawable1.setBounds(100, 100, 400, 400);
        drawable2.setBounds(150, 150, 350, 350);
        drawable1.draw(c);
        drawable2.draw(c);


    } catch (Exception e) {
    }
    return bitmap;

}
于 2012-09-02T10:27:28.690 に答える
0

最下層のキャンバスからキャンバスオブジェクトを作成します。次に、そのキャンバスに半透明のビットマップを描画します。元のビットマップオブジェクトには、その上に半透明のビットマップが書き​​込まれます。

于 2012-09-02T10:34:36.653 に答える