web-dev-qa-db-fra.com

Image dessinable sur une toile

Comment puis-je obtenir une image sur la toile afin de dessiner sur cette image?

84
Lana

La bonne façon de dessiner Drawable sur une toile ne consiste pas à le décoder vous-même, mais à laisser le système le faire:

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

Cela fonctionnera avec toutes sortes de dessins, pas seulement les bitmaps. Et cela signifie également que vous pouvez réutiliser le même dessin si la taille change.

155
Gábor

Vous devez charger votre image en tant que bitmap:

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

Ensuite, rendez le bitmap mutable et créez un canevas dessus:

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

Vous pouvez ensuite dessiner sur la toile.

36
Konstantin Burov

aussi vous pouvez utiliser cette façon. cela va changer votre grand ajustement à votre toile:

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

essaye ça

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