web-dev-qa-db-ja.com

キャンバスに描画可能な画像

その画像に描画するために、キャンバスに画像を取得するにはどうすればよいですか?

84
Lana

キャンバスにDrawableを描画する良い方法は、自分でデコードするのではなく、システムに任せることです。

Drawable d = getResources().getDrawable(R.drawable.foobar, null);
d.setBounds(left, top, right, bottom);
d.draw(canvas);

これは、ビットマップだけでなく、あらゆる種類のドロアブルで機能します。また、サイズのみが変更された場合、同じドロウアブルを再利用できることも意味します。

155
Gábor

画像をビットマップとしてロードする必要があります。

 Resources res = getResources();
 Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.your_image);

次に、ビットマップを変更可能にし、その上にキャンバスを作成します。

Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true));

その後、キャンバスに描画できます。

36

また、この方法を使用できます。それはあなたのキャンバスにあなたの大きなドローアブルフィットを変更します:

Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, yourDrawable);
yourCanvas.drawBitmap(bitmap, 0, 0, yourPaint);
13
AzizAhmad

これを試して

Bitmap mBitmap = Bitmap.createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter);

protected void onDraw(Canvas canvas) {
            canvas.drawColor(0xFFAAAAAA);
            canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);

        }
8
Rohit Mandiwal
Drawable d = ContextCompat.getDrawable(context, R.drawable.***)
d.setBounds(left, top, right, bottom);
d.draw(canvas);
8
34m0
package com.Android.jigsawtest;

import Android.content.Context;
import Android.graphics.Bitmap;
import Android.graphics.BitmapFactory;
import Android.graphics.Canvas;
import Android.graphics.Color;
import Android.graphics.Paint;
import Android.view.SurfaceHolder;
import Android.view.SurfaceView;

public class SurafaceClass extends SurfaceView implements
        SurfaceHolder.Callback {
    Bitmap mBitmap;
Paint paint =new Paint();
    public SurafaceClass(Context context) {
        super(context);
        mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
            int height) {
        // TODO Auto-generated method stub

    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        // TODO Auto-generated method stub

    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        // TODO Auto-generated method stub

    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawColor(Color.BLACK);
        canvas.drawBitmap(mBitmap, 0, 0, Paint);

    }

}
1
user1140237