如何在画布中绘制时调整位图大小?

时间:2014-12-14 03:39:41

标签: android bitmap android-canvas

在我的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但是可以同时使其变为可变吗?这就是我想要做的整体,调整大小并使其同时变为可变。

由于

1 个答案:

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