我有一些想向用户显示的大图像。我希望他们能够放大。我目前正在使用 TouchImageView,它正在工作,但是,当我放大时,图像的质量/分辨率不会改变。
我注意到一些图库应用程序似乎正在这样做。它们以某种采样率加载整个图像,以便可以在没有内存不足的情况下显示它。然后,当您放大时,图像的质量似乎正在提高。
是否有与此类似的功能的示例代码/库?
我建议您使用 Dave Morrissey 提供的视图:
来源摘录:
适用于 Android 的自定义 ImageView,具有缩放和二次采样图块以支持大图像。放大时,低分辨率的全尺寸基础层会覆盖当前比例最佳分辨率的较小图块,并且在平移过程中会加载和丢弃图块,以避免在内存中保存过多的位图数据。
如果您有 1 个源图像并且正在放大它,您将不会神奇地创建以前没有的分辨率。答案是创建多个 r-set 或多个具有不同分辨率的图像并动态加载/缩放/缩放,或者在以较低分辨率显示图像时自己对图像进行下采样。
例如,考虑缩略图。它们是作为原始图像的一个小样本创建的。如果你放大那个缩略图,它看起来会很糟糕。您可以根据客户端视图的缩放级别和坐标计算最佳 r-set 图像。
我认为我的偏好是预处理大图像并创建不同级别的分辨率,正如我在第一段中提到的那样。然后当用户放大时,您会加载不同的图像。例如,这类似于 Google 地图的工作方式。
我希望这有帮助。