Gáb*_*bor 157
在画布上绘制Drawable的好方法不是自己解码,而是将其留给系统来执行此操作:
Drawable d = getResources().getDrawable(R.drawable.foobar, null);
d.setBounds(left, top, right, bottom);
d.draw(canvas);
Run Code Online (Sandbox Code Playgroud)
这适用于所有类型的drawable,而不仅仅是位图.而且这也意味着如果只改变尺寸,你可以再次使用相同的drawable.
Kon*_*rov 36
您需要将图像加载为位图:
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.your_image);
Run Code Online (Sandbox Code Playgroud)
然后使位图变为可变并在其上创建一个画布:
Canvas canvas = new Canvas(bitmap.copy(Bitmap.Config.ARGB_8888, true));
Run Code Online (Sandbox Code Playgroud)
然后,您可以在画布上绘图.
Azi*_*mad 13
你也可以用这种方式.它会改变你的画布适合你的画布:
Resources res = getResources();
Bitmap bitmap = BitmapFactory.decodeResource(res, yourDrawable);
yourCanvas.drawBitmap(bitmap, 0, 0, yourPaint);
Run Code Online (Sandbox Code Playgroud)
试试这个
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);
}
Run Code Online (Sandbox Code Playgroud)
Drawable d = ContextCompat.getDrawable(context, R.drawable.***)
d.setBounds(left, top, right, bottom);
d.draw(canvas);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
151283 次 |
最近记录: |