1

次のコードで画像を作成しました。

Bitmap bmp = Bitmap.createBitmap(512, 512, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);

try {
    int tile1ResID = getResources().getIdentifier("drawable/m" + String.valueOf(tileOfPoint.x) + "_" + String.valueOf(tileOfPoint.y), "drawable", "com.example.sabtt1");

    canvas.drawBitmap(Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), tile1ResID), 256, 256, true), 0, 0, null);
    canvas.save();
}
catch (Exception e) {
}

canvas.save();

ImageView imgMap1 = (ImageView) findViewById(R.id.imgMap1);
imgMap1.setImageDrawable(new BitmapDrawable(Bitmap.createBitmap(bmp, 0, 0, 500, 500)));

今、私はそれを背景にしたいと思っています。ユーザーが画像を追加したり、描画したりできるようにします。背景として設定するにはどうすればよいですか?画像の追加と指での描画を同時に行うことはできますか?

私は描画のためにこのコードを使用します:

@Override
public void onClick(View arg0) {
    try {
        Bitmap gestureImg = gesture.getGesture().toBitmap(100, 100, 8, Color.BLACK);

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        gestureImg.compress(Bitmap.CompressFormat.PNG, 100, bos);
        byte[] bArray = bos.toByteArray();

        Intent intent = new Intent(Activity1.this, Activity2.class);

        intent.putExtra("draw", bArray);
        startActivity(intent);
    }
    catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(Activity1.this, "No draw on the string", 3000).show();
    }
}

画像の追加と移動には OnDragListener を使用します。

バックグラウンドに次のコードを使用する必要があることはわかっています。

LinearLayout ll = new LinearLayout(this);
    ll.setBackgroundResource(R.drawable.nn);
    this.setContentView(ll);

しかし、このコードを使用すると、他の画像を見ることができません。

前もって感謝します。

4

1 に答える 1

0

メインのビットマップに他のビットマップを描画するだけです:

Bitmap bmp = Bitmap.createBitmap(512, 512, Bitmap.Config.ARGB_8888);
bmp = <load from resource>
Canvas canvas = new Canvas(bmp);
Bitmap gestureImg = <get bitmap from gesture or loading>
canvas.drawBitmap(gestureImg);

次に、最終的なビットマップをロードします。

ImageView imgMap1 = (ImageView) findViewById(R.id.imgMap1);
imgMap1.setImageDrawable(new BitmapDrawable(Bitmap.createBitmap(bmp, 0, 0, 500, 500)));

または、メインのビットマップと他のすべてのジェスチャ/ロードされたビットマップを別々のオブジェクトに保存し、更新するimgMap1場合は組み合わせたビットマップを作成できます。

また、新しいビットマップを背景として使用するには、次を使用します。

ll.setBackgroundDrawable( new BitmapDrawable( bmp ) );
于 2012-09-26T10:19:31.890 に答える