首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android pinch缩放大图像,在不丢失细节的情况下节省内存

问Android pinch缩放大图像,在不丢失细节的情况下节省内存
EN

Stack Overflow用户
提问于 2013-03-02 22:49:22
回答 2查看 3.8K关注 0票数 11

我的应用程序必须显示一些高分辨率的图像(大约1900*2200像素),支持收缩缩放。为了避免内存不足错误,我计划解码图像以全屏显示,使用

代码语言:javascript
复制
options.inSampleSize = scale (scale was calculated as Power of 2 as Document)

(我使用的视图是ImageView的TouchImageView扩展)

因此,我可以快速加载图像,并在屏幕(图像)之间平滑地滑动。然而,当我收缩缩放时,我的应用程序会因为缩放图像而丢失细节。如果我加载完整的图像,我不能加载快速或流畅的滑动,在收缩缩放后拖动。然后,我尝试只加载完整的图像时,用户开始收缩缩放,但我仍然不能顺利拖动图像,因为非常大的图像。安卓图库即使是8Mpx的图片也能做得很好。

任何人都可以帮助我。提前感谢

EN

回答 2

Stack Overflow用户

发布于 2013-08-27 03:22:25

很抱歉回答一个老问题,但我刚刚完成了一个图像视图,它显示了来自资源或外部存储的图像,并在您收缩放大时从图像中加载更高分辨率的图块。由于屏幕区域的高分辨率图像数据未加载,因此应避免内存不足异常。

https://github.com/davemorrissey/subsampling-scale-image-view

票数 9
EN

Stack Overflow用户

发布于 2013-08-06 22:24:44

我知道这个问题很久以前就被问过了,但这个答案可能会对其他正在为此而苦苦挣扎的人有所帮助。我也有同样的问题。您应该考虑使用WebView并使用它加载您的图像,即使它是一个本地图像。例如,要在资源中加载图像,请使用以下命令:

代码语言:javascript
复制
// Get a WebView you have defined in your XML layout    
WebView webView = (WebView) findViewById(R.id.webView1);  
// Fetch the picture in your folders using HTML             
String htmlData = "<img src=\"my_image.png\">";
webView.loadDataWithBaseURL("file:///android_asset/", htmlData, "text/html", "utf-8", null);
// Activate zooming
webView.getSettings().setBuiltInZoomControls(true);

我承认使用WebView来完成这样的任务是非常奇怪的,这是我找到的唯一解决方案。至少你永远不会得到一个OOM异常。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15175760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档