在我的Android应用程序中,我有这个函数,通过画布从旧的位图创建一个新的位图。
private static Bitmap convert(Bitmap bitmap, Bitmap.Config config, int width, int height) {
Bitmap convertedBitmap = Bitmap.createBitmap(width, height, config);
Canvas canvas = new Canvas(convertedBitmap);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawBitmap(bitmap, 0, 0, paint);
bitmap.recycle();
return convertedBitmap;
}
问题是当我将旧位图绘制到画布上时,由于旧位图的尺寸大于画布,因此只有位图的左上部分会在画布上绘制。有没有一种方法可以让它在画布上绘制位图时,它会缩放位图,使其完全适合画布?
我不想使用createScaledBitmap
调整位图大小。有更快的方法吗?
或者我可以createScaledBitmap
但是可以同时使其变为可变吗?这就是我想要做的整体,调整大小并使其同时变为可变。
由于
答案 0 :(得分:9)
您可以为此功能调用public void drawBitmap (Bitmap bitmap, Rect src, RectF dst, Paint paint)
(Android Doc)。下面的代码应该完成你要做的事情:
canvas.drawBitmap(bitmap, null, new RectF(0, 0, canvasWidth, canvasHeight), null);