캔버스에 드로어 블 이미지 위해 캔버스에 이미지를

이미지를 그리기 위해 캔버스에 이미지를 가져 오려면 어떻게해야합니까?



답변

캔버스에 드로어 블을 그리는 좋은 방법은 직접 디코딩하는 것이 아니라 시스템에 맡기는 것입니다.

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

이것은 비트 맵뿐만 아니라 모든 종류의 드로어 블에서 작동합니다. 또한 크기 만 변경되면 동일한 드로어 블을 다시 사용할 수 있습니다.


답변

이미지를 비트 맵으로로드해야합니다.

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

그런 다음 비트 맵을 변경 가능하게 만들고 그 위에 캔버스를 만듭니다.

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

그런 다음 캔버스에 그릴 수 있습니다.


답변

또한이 방법으로 사용할 수 있습니다. 캔버스에 맞게 큰 드로 블이 변경됩니다.

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


답변

Drawable d = ContextCompat.getDrawable(context, R.drawable.***)
d.setBounds(left, top, right, bottom);
d.draw(canvas);


답변

이 시도

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);

        }


답변

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);

    }

}


답변