Android:细化可缩放图片

Android:细化可缩放图片,android,bitmap,out-of-memory,zooming,Android,Bitmap,Out Of Memory,Zooming,很长一段时间以来,我一直在为能够缩放的大型图像而奋斗。我正在从网络上加载一些大小可变的图片:可能从0.5MP到10MP。由于OOM异常,简单地将一个加载到位图会导致应用程序崩溃。但是细节非常重要,所以我希望用户能够对其进行缩放,以保持完整的质量(因此在缩放过程中图片应该自我优化)。我找不到合适的方法来做这件事。我使用了TouchImageView库,但它根本不管理大图片。如果首先使用BitmapFactory的inSampleSize参数对图片进行下采样,我将完全失去质量。我不想编写一个全新的缩

很长一段时间以来,我一直在为能够缩放的大型图像而奋斗。我正在从网络上加载一些大小可变的图片:可能从0.5MP到10MP。由于OOM异常,简单地将一个加载到位图会导致应用程序崩溃。但是细节非常重要,所以我希望用户能够对其进行缩放,以保持完整的质量(因此在缩放过程中图片应该自我优化)。我找不到合适的方法来做这件事。我使用了
TouchImageView
库,但它根本不管理大图片。如果首先使用
BitmapFactory
inSampleSize
参数对图片进行下采样,我将完全失去质量。我不想编写一个全新的缩放工具,因为它已经在每个安卓手机的默认Gallery应用程序中实现。必须有一种方法来使用这种工具,并简单地显示一个能够缩放的大图像,对吗

  • 你试过了吗
  • 您也可以使用标准的
    loadUrl(String)
    来完成,它也应该处理大图像。WebView具有内置的缩放控件
  • (在2.3.3中添加)可能有效。但我没有试过。
    Gallery中的实现似乎是OpenGL,无法简单地使用它。

    您查看了Gallery应用程序的源代码吗?我查看了,但它是一个非常复杂的应用程序,很难提取缩放所需的部分。应该有一个更简单的解决方案。PhotoView是一个非常好的项目,但据我所知,它只管理经典ImageView上的缩放,这与ToucheImageView完全相同。如果图片太大,你必须先对它进行下采样,否则它将无法工作。这就是我想要避免的!然后按照我的建议,尝试使用标准的
    android.webkit.WebView
    加载URL(字符串)加载图像。到目前为止,我还没有看到任何大图像在使用OOM时崩溃。
    WebView
    工作起来很有魅力!我从来没有想过用它来显示本地图像!我不明白为什么这些选项不是内置的
    ImageView
    。这将是1000%更直观。无论如何谢谢你!我知道BitMapRegionCoder,但这意味着要完全重新实现收缩和缩放机制,这在Android这样的高级编程框架中毫无意义!我建议使用
    WebView