2

こんにちは、元のビットマップの上にオーバーレイするイメージ (リソースからのフレーム) を取得しようとしています。これまでのところ、フレームが常に空であるため、ビットマップをフレームに入れることができませんでした。元のビットマップがフレーム内に表示されます。これを達成するために使用しているコードは次のとおりです。

  Canvas canvas = new Canvas();
    Bitmap border = null;
    Bitmap scaledBorder = null;
    border = BitmapFactory.decodeResource(getResources(), R.drawable.frame1);
    int width = bmp.getWidth();
    int height = bmp.getHeight();
    scaledBorder = Bitmap.createScaledBitmap(border,width,height, false);
    canvas.drawBitmap(scaledBorder, 0, 0, new Paint());
    view.setImageBitmap(scaledBorder);

ギャラリーまたはカメラからの元のビットマップとして bmp。それらをまとめる場所が見つかりません。フレームのみが表示され、bmp は表示されません。前もって感謝します。

4

2 に答える 2

5

ありがとう、私は自分でそれを理解しました。これを使って

void hm1(){
    Bitmap border = BitmapFactory.decodeResource(getResources(), R.drawable.vignette2);
    int width = bmp.getWidth();
    int height = bmp.getHeight();
    change = Bitmap.createScaledBitmap(change, width, height, false);
    Canvas canvas = new Canvas(change);
    Bitmap scaledBorder = Bitmap.createScaledBitmap(border,width,height, false);
    canvas.drawBitmap(scaledBorder, 0, 0,null);
    //canvas.drawBitmap(k, 0, 0, null);
    view.setImageBitmap(change);
    }

このメソッドを任意のクリック ボタン、メニューなどに追加すると、2 つのビットマップを重ねて描画できます。
PS :Bitmap changeユーザーが元のメソッドにオーバーレイを適用するのではなく、変更されたメソッドにオーバーレイを適用したくないため、元のビットマップからの別のビットマップです。答えが誰かに役立つことを願っています。ありがとう

于 2013-01-29T09:17:07.430 に答える
0

要するに、最初に元の画像をキャンバスに追加し、次に境界線を追加してから、キャンバスをビューに配置する必要があります。あなたの最善の策は、これを onDraw() メソッドで行うことです。このようなものが動作するはずです:

@Override
void onDraw (Canvas canvas)
{
    canvas.drawBitmap(bmp,0,0,new Paint())
    Bitmap border = null;
    Bitmap scaledBorder = null;
    border = BitmapFactory.decodeResource(getResources(), R.drawable.frame1);
    int width = bmp.getWidth();
    int height = bmp.getHeight();
    scaledBorder = Bitmap.createScaledBitmap(border,width,height, false);
    canvas.drawBitmap(scaledBorder, 0, 0, new Paint());
}

または、ビューから draw() 関数を呼び出すこともできます。

canvas.drawBitmap(bmp,0,0,new Paint())
Bitmap border = null;
Bitmap scaledBorder = null;
border = BitmapFactory.decodeResource(getResources(), R.drawable.frame1);
int width = bmp.getWidth();
int height = bmp.getHeight();
scaledBorder = Bitmap.createScaledBitmap(border,width,height, false);
canvas.drawBitmap(scaledBorder, 0, 0, new Paint());
view.draw(canvas);
于 2013-01-28T14:28:05.973 に答える