2013-08-06 37 views
2

我一直在努力寻找能够缩放的大图片很长一段时间。我从网络上加载一些可能具有很大变化的图片:它可能从0.5MP到10MP。由于OOM异常,将一个加载到位图可能会导致应用程序崩溃。但细节非常重要,所以我希望用户能够放大它们以保持完整的质量(因此图片在缩放过程中应该自行优化)。我没有找到正确的方法来做到这一点。我已经使用了TouchImageView库,但它根本无法管理大图片。如果我首先用的inSampleSize参数下载我的图片,那么我的质量肯定会下降。我不想编写一个全新的缩放工具,因为它已经在默认的Gallery应用中的每个Android手机上实现。必须有一种方法来使用这种工具,并简单地显示一个可以缩放的大图像,对吗?Android:细化可缩放图片

+0

你看过Gallery应用程序的源代码吗? – 18446744073709551615

+0

我做过,但它是一个非常复杂的应用程序,很难提取我需要缩放的部分。应该有一个更简单的解决方案。 –

回答

0
  1. 你试过PhotoView
  2. 你也可以用标准WebViewloadUrl(String)这样做,它也可以处理大图片。 WebView具有内置的缩放控件。
+0

PhotoView是一个非常好的项目,但从我的理解来看,它只管理经典ImageView上的缩放,这与ToucheImageView完全相同。如果图片较大,则必须先对其进行下采样,否则将无法工作。这正是我想要避免的! –

+0

然后按照我的建议,尝试使用标准的'android.webkit.WebView'的'loadUrl(String)'加载图像。到目前为止,我还没有看到OOM在使用它时会崩溃。 – Kuitsi

+0

'WebView'就像一个魅力!我永远不会想到用它来显示本地图像!我不明白为什么这些选项不是在'ImageView'中构建的。这将是更直观的1000%。不管怎样,谢谢你! –

0

BitmapRegionDecoder(在2.3.3中添加)可能有效。但我没有尝试过。 在库中的实现似乎是OpenGL,没有办法简单地使用它。

+0

我知道'BitmapRegionDecoder',但它意味着要完全重新实现捏和缩放机制,这在Android等高级编程框架中没有任何意义!我会推荐使用'WebView'! –