【问题标题】:Android ImageViewer class supporting Pinch-Zoom and Scrolling支持 Pinch-Zoom 和 Scrolling 的 Android ImageViewer 类
【发布时间】:2011-06-20 18:34:30
【问题描述】:

我正在搜索一个 ImageViewer 库,该库在我的应用程序中为给定的 URI 打开一个图像(网络服务获取的图像已经存储在我的应用程序中的安全位置)。我真的很喜欢“Samsung Galaxy S”ImageViewer-Activity,因为它使用捏缩放和“滚动”垂直/水平。它还在我的三星手机上快速缩放图片:)

我知道我可以用这样的意图打开一张图片:

Intent i = new Intent(Intent.ACTION_VIEW);  
i.setDataAndType(uri, "image/*");
startActivity(i);

正在调用最合适的查看器,当没有找到时会引发 ActivityNotFoundException。太酷了!

但问题是我不允许以外部意图打开图像(出于安全目的)。即:用户不应该通过菜单选项将打开的图像保存到他的外部 sd 卡或将此图片发送到另一个服务(电子邮件/推特或 s.o.)。所以我必须编写自己的 ImageViewer-Class (Activity),只能在我的应用程序中调用... 不幸的是,我不是很熟练地转换图像,所以有没有涵盖这个用例的开源项目(或库)?

我已经问过谷歌并找到了这个http://code.google.com/p/android-pinch/,但效果不佳(也没有滚动功能)。

感谢您的提示:)

【问题讨论】:

标签: android scroll transform imageview pinch


【解决方案1】:

此时我也使用 WebView。但这在概念上是错误的,WebView 不是用于显示图像,而是用于显示 Web 内容。 WebView 笨重且笨重。您限制了自定义它。例如,我需要缩放,但我不想看到缩放控件,或者我想将它们移动到其他位置而不是默认位置。

因此,我搜索了一下这个问题,找到了一些解决方案:

  • PhotoView 来自 Chris Banes 的小部件
  • 此外,您可以查看 Sony Ericsson 的本教程(可用资源)并可以实现自己的小部件:part1part2part3
  • 另外一个库ImageViewZoom在github

更新

Chris Banes 创建了一个很棒的库,它支持缩放图片的手势,见上面的第一点

【讨论】:

  • ImageViewZoom 不支持捏合缩放。如今,当用户想要用手指捏合以放大图像的一部分时,这已经毫无用处了。
【解决方案2】:

如果图像存储在本地或在线某处,处理图像的最简单方法是使用WebView。 WebView 支持捏拉缩放等功能。

Java 示例:

String imageUrl = "file:///local/dir/image.jpg"; // http://example.com/image.jpg
WebView wv = (WebView) findViewById(R.id.yourwebview);
wv.getSettings().setBuiltInZoomControls(true);
wv.loadUrl(imageUrl);

XML 来源:

<WebView android:id="@+id/yourwebview"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />

【讨论】:

  • 这是一个很棒的解决方案,谢谢!它按应有的方式工作。虽然我必须设置一个选项wv.setInitialScale(100); 很高兴它s that easy to view an image in android ;) Is the image being stored in the internal db from my application? Or do I have to call wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);`?
  • 我不认为它存储在缓存或任何相关内容中。
  • webView.getSettings().setDisplayZoomControls(false); 它将隐藏默认缩放控件
猜你喜欢
  • 1970-01-01
  • 2014-01-23
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
相关资源
最近更新 更多