如何在android中扩展现有的位图?

时间:2012-06-13 08:42:31

标签: android

我有一个已解码的位图,我想在画布上绘制它之前暂时缩放。因此解码文件并设置大小是不可能的。我想保留现有位图的大小,并在绘制到画布上之前将其缩小。这是可能的吗?

使用Matrix postScale(sx,sy,px,py)正确缩放但不能正确定位。而canvas.drawBitmap没有矩阵和x&的选项。从我能看到的位置。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

以下是代码:

public static Bitmap scaleBitmap(Bitmap bitmap, int width, int height) {
    final int bitmapWidth = bitmap.getWidth();
    final int bitmapHeight = bitmap.getHeight();

    final float scale = Math.min((float) width / (float) bitmapWidth,
            (float) height / (float) bitmapHeight);

    final int scaledWidth = (int) (bitmapWidth * scale);
    final int scaledHeight = (int) (bitmapHeight * scale);

    final Bitmap decoded = Bitmap.createScaledBitmap(bitmap, scaledWidth, scaledHeight, true);
    final Canvas canvas = new Canvas(decoded);

    return decoded;
}

请注意:将位图传递给比例尺,它是新的高度和宽度。