加速ImageView

时间:2015-08-21 13:57:55

标签: android c++ image-scaling image-zoom

我目前处理的是非常大的图像(7-10mb),由于多种原因无法调整大小或压缩。

现在,我们的想法是在自定义ImageView中显示它们,使用户可以进行双击缩放,缩放缩放等。

我使用这个库来完成工作:https://github.com/MikeOrtiz/TouchImageView

我也尝试过其他库但其他所有库仍然很慢。有人可以给我一些指示/建议,使其更快(甚至编写我自己的C ++实现)?

我对所有这些“Matrix”,“flig”,“scale”的东西有点失落,我不知道应该触摸什么来加快速度。如果你也知道其他更快的库(或者如何使用自定义的Android实现,那真的很快),那就太好了。

6 个答案:

答案 0 :(得分:5)

尝试一个名为openCV的库或在matlab中使用它,然后将代码移植到c / c ++中以进行图像增强

答案 1 :(得分:3)

您是否尝试过使用Ion库的DeepZoom功能?

https://github.com/koush/ion

https://www.youtube.com/watch?v=yIMltNEAKZY

如果您不想使用opengl,或者上述库不起作用,您也可以尝试使用http://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html类。也就是说,跟踪用户的“位置”(视口和缩放级别)并从主线程解码该区域,每次用户改变输入时将其推入画布。

答案 2 :(得分:2)

您可以尝试手动实施" mipmap" - 同一图像的不同尺寸,然后只使用最合适尺寸的图像进行显示....因此,当缩小时,您将操纵相对较小的图像(但仍将获得相同的图像的完整细节)放大时大的。)

答案 3 :(得分:2)

尝试名为PhotoView的库。当与picasso一起使用时,我能够实现Onlick功能,使用户能够点击较小的图像并让它在自定义视图上弹出完整图像,并具有缩放功能。这非常简单实施

答案 4 :(得分:2)

解决问题的一种方法是使用WebView,它支持平移,捏缩放等。我认为图像质量可能是一个问题。

android-local-image-in-webview

android-add-image-to-webview-from-a-drawable

等。 您还可以动态生成和加载html

答案 5 :(得分:0)

在TouchImageView.java类中,DoubleTapZoom为ZOOM_TIME设置更低或更高的值

private class DoubleTapZoom implements Runnable {
 ......
 private static final float ZOOM_TIME = 500 //(lower - faster)
 ......