我希望能够缩放比特图并保持宽高比不变。
我不需要将任何尺寸设置为特定尺寸, 我知道inSampleSize并不适用于负数,我也不喜欢 如果有的话就会发生类似的事情。
我尝试使用BitmapFactory.Options():inScaled,inTargetDensity和inDensity 但大小保持不变。我一定不能正确使用它们。
我想将它扩展到1倍或2倍,我可以得到任何东西 结果的宽度和高度。我真的很喜欢它 大约1.5倍,大小不是很大。
谢谢!
答案 0 :(得分:1)
通常在解码位图时,您需要缩小比例,这样就不会遇到OOM。 inSampleSize请求解码器对原始图像进行二次采样,返回较小的图像以节省内存。
如果您尝试获取位图以覆盖整个视图,您可以设置imageView的scaleType以决定如何缩放它:
http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
以下是有关如何在需要时加载位图的链接: http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
答案 1 :(得分:1)
查看了一些代码示例 并尝试了一些事情,这很好地解决了:
Matrix matrix = new Matrix();
matrix.postScale(1.5f, 1.5f);
iWidth = bitmap.getWidth();
iHeight = bitmap.getHeight();
Bitmap resizedBitmap = Bitmap.createBitmap(
bitmap, 0, 0, iWidth, iHeight, matrix, false);
然后我使用了' resizedBitmap'在我的onDraw()中:
canvas.drawBitmap(resizedBitmap,
scrollRect,
displayRect,
null);