【问题标题】:Android: fast image slider with *correctly rotated* imagesAndroid:带有*正确旋转*图像的快速图像滑块
【发布时间】: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 预算”错误的结果。

这一定是可能的,因为使用默认的“画廊”应用程序,即使图像非常大,滑动也非常快......但我想这不是一项简单的任务?

【问题讨论】:

标签: android image imageview image-rotation


【解决方案1】:

最后我找到了解决方案:要获得响应迅速、流畅的图像滑动行为,需要做两件事:

  1. 使用 AsyncTask 在后台加载位图 https://developer.android.com/training/displaying-bitmaps/process-bitmap.html

  2. 使用 BitmapFactory.Options.inSampleSize 加载位图的下采样版本(使用 ViewPager 和位图尺寸之间的比率计算)

    https://developer.android.com/training/displaying-bitmaps/load-bitmap.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多