有很多示例如何将 ViewPager 用作图像 slider ,但我还没有看到任何处理正确旋转图像问题的示例:
现在实际上我有一个解决方案,但问题是当图像尺寸超过大约 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 预算”错误的结果。
这一定是可行的,因为使用默认的“画廊”应用程序,即使是非常大的图像,滑动也非常快......但我想这不是一项微不足道的任务?
最佳答案
最后我找到了解决方案:要获得响应迅速、流畅的图像滑动行为,需要做两件事:
使用 AsyncTask 在后台加载位图 https://developer.android.com/training/displaying-bitmaps/process-bitmap.html
使用 BitmapFactory.Options.inSampleSize(使用 ViewPager 和位图尺寸之间的比率计算)加载位图的缩减采样版本
https://developer.android.com/training/displaying-bitmaps/load-bitmap.html
关于Android:带有*正确旋转*图像的快速图像 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16776918/