Android:如何使用画布/绘制位图缩放位图以适合屏幕大小?
作者:互联网
我正在拍摄图像,并使用画布将其绘制到屏幕上.我想根据屏幕尺寸缩放它.
这是我尝试过的方法,但是它会切掉大部分图像:
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),R.drawable.myimage);
bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false);
Rect frameToDraw = new Rect(0, 0, width, height);
RectF whereToDraw = new RectF(0, 0, width, height);
canvas.drawBitmap(bitmap,frameToDraw,whereToDraw, paint);
我知道我做错了一些事,但我不确定是什么.此代码使图像超出屏幕尺寸.我希望将其缩放到屏幕尺寸.我还将绘制较小的图像,尽管不是全屏显示,我也需要根据屏幕的大小进行缩放.
解决方法:
Rect frameToDraw = new Rect(0, 0, width, height);
RectF whereToDraw = new RectF(0, 0, width, height);
看一下上面的代码.您没有缩放图片.您只是简单地拍摄了一部分图片(在这种情况下是整个图片),然后将其粘贴到某处(在这种情况下是原始图片的大小).
frameToDraw矩形的宽度和高度应为图片的宽度和高度.
标签:android-bitmap,android,canvas,android-canvas 来源: https://codeday.me/bug/20191011/1896625.html