首页 文章

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

提问于
浏览
1

在我的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 回答

  • 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);
    

相关问题