有很多示例如何将 ViewPager 用作图像滑块,但我还没有看到任何处理正确旋转图像问题的示例:
现在实际上我有一个解决方案,但问题是当图像大小超过大约 3000*1500 像素时,由于额外的旋转步骤,图像滑动非常缓慢:
通过 setImageURI 或 setImageBitmap 设置图像时,ImageView 本身并不关心正确的方向。
这意味着您首先必须自己找出 正确的方向,然后最终做一个
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 预算”错误。
不知何故,这一定是可能的,因为使用默认的“画廊”应用程序,即使图像非常大,滑动也非常快……但我想这不是一项微不足道的任务吗?