【发布时间】:2013-05-27 16:06:12
【问题描述】:
有很多示例如何使用 ViewPager 作为图像滑块,但我还没有看到任何处理正确旋转图像问题的示例: p>
现在实际上我有一个解决方案,但问题是当图像大小超过大约 3000*1500 像素时,图像滑动非常缓慢,因为额外的旋转步骤:
ImageView 本身并不关心通过设置图像时的正确方向 setImageURI 或 setImageBitmap。
这意味着您首先必须自己找出correct orientation,然后最终做一个
matrix.postRotate(rotation)
并使用
创建一个新的位图Bitmap.createBitmap(srcBitmap, 0, 0, srcBitmap.getWidth(),
srcBitmap.getHeight(), matrix, true);
这个额外的位图创建确实减慢了它的速度。
如果这是一种加载“动态旋转”图像的方法?某事。像 BitmapFactory.decodeStream(stream,matrix) 吗?
我也尝试将 ViewPager.setOffscreenPageLimit 值增加到 3,但使用 “java.lang.OutofMemoryError: 位图大小超出 VM 预算”错误的结果。
这一定是可能的,因为使用默认的“画廊”应用程序,即使图像非常大,滑动也非常快......但我想这不是一项简单的任务?
【问题讨论】:
-
谢谢,同时我也发现 BitmapFactory.Options.inSampleSize 可能是关键:developer.android.com/training/displaying-bitmaps/… --> 传递 ImagesView 的宽度和高度
标签: android image imageview image-rotation