【发布时间】:2013-01-10 07:29:43
【问题描述】:
我想绘制在画布中缩放的位图(基于位图和视图大小)。问题是,如果我在绘制位图之前缩放画布:
canvas.scale(1.5f,1.5f);
canvas.drawBitmap(mBitmap, 0, 0, paint);
这是结果:
但如果不是缩放画布,而是缩放位图:
Bitmap scaled = Bitmap.createScaledBitmap(
mBitmap, bitmapWidth, bitmapHeight,
true);
canvas.drawBitmap(scaledBitmap, 0, 0, paint);
结果要好得多:
问题是位图非常大,并且在内存中同时保存原始位图和缩放后的位图可能会有问题。
有没有什么方法可以在每次 Bitmap 或 View 边界发生变化时不创建缩放 Bitmap 的情况下获得第二个结果?
【问题讨论】:
-
您是否为您的
Paint对象设置了FILTER_BITMAP_FLAG和ANTI_ALIAS_FLAG? -
缺少的 FILTER_BITMAP_FLAG 是问题所在。谢谢!