支持Pinch-Zoom和Scrolling的Android ImageViewer类

tim*_*ner 15 android scroll transform pinch imageview

我正在搜索一个ImageViewer库,它在我的应用程序中为给定的URI打开一个图像(webservice提取的图像已经存储在我的应用程序中的安全位置).我非常喜欢"三星Galaxy S"ImageViewer-Activity,因为它使用双指缩放和"滚动"垂直/水平.它也可以在我的三星手机上快速缩放图片:)

我知道我可以打开一个像这样的意图的图像:

Intent i = new Intent(Intent.ACTION_VIEW);  
i.setDataAndType(uri, "image/*");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

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

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

我已经问谷歌了,发现这个http://code.google.com/p/android-pinch/但是它没有很好地工作(它也没有滚动功能).

谢谢你的提示:)

Dmi*_*sov 20

此刻我也使用WebView.但这在概念上是错误的,WebView不是用于显示图像,而是用于显示Web内容.WebView体积庞大且繁琐.你限制自定义它.例如,我需要缩放,但我不想看到缩放控件,或者我想在其他地方移动它们然后默认.

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

  • 来自Chris Banes的PhotoView小部件
  • 此外,您可以从索尼爱立信(可用的源代码)查看本教程,并可以实现您自己的小部件:part1,part2,part3
  • 另一个库ImageViewZoom在github上

UPDATE

Chris Banes创建了很棒的库,支持缩放图片的手势,请参阅上面的第一点


Flo*_*ern 16

WebView如果图像存储在本地或某处在线,则处理图像的最简单方法是使用a .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);
Run Code Online (Sandbox Code Playgroud)

XML源:

<WebView android:id="@+id/yourwebview"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)