我已阅读了大量帖子,并尝试了一些建议的解决方案,但没有太多运气。
我有一个快乐地显示文本视图的ViewPager。
我现在想要增强它以支持ImageViews。图像可能有各种各样的形状和大小,因此我需要让用户能够进行缩放和平移,以便专注于任何区域。
NB。我不一定需要捏缩放,因为我尝试过的捏缩放库(例如。https://github.com/jasonpolites/gesture-imageview/blob/master/main/src/com/polites/android/GestureImageView.java和http://blog.sephiroth.it/2011/04/04/imageview-zoom-and-scroll/)似乎间歇性地工作,并且因内存不足而崩溃。因此,不要通过手势检测使解决方案复杂化,我很乐意在视图上方放置一个滑块控件来实现缩放UI。
我正在努力找到适当的视图层次结构来实现这一目标(例如,我是否需要ScrollView或在ImageView中平移功能),我应该缩放位图,还是调整大小查看?
对于我需要使用哪些视图组件的任何建议将不胜感激。
我应该使用ImageView吗?我已经看到一些答案表明WebView是一个更好的起点。
我的直觉是,我正在尝试做的事情应该是非常基本的,并且只需要正确的视图层次结构和查看配置设置。要求自定义ImageView类似乎太简单了,但当然我可能错了。
答案 0 :(得分:1)
我应该使用ImageView吗?我已经看到一些答案表明WebView是一个更好的起点。
这是我最终解决它的方式。我只是将图像文件名包装在一些HTML中并将其提供给webview。
这给了我以下特定的好处: -
这是我最终得到的代码。
File imgFile = new File(FILESDIR,FILENAME);
if(imgFile.exists()){
WebView wv = (WebView) rootView.findViewById(R.id.imageView1);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setDisplayZoomControls(true);
String html = ("<html><img src='"+imgFile.getName()+"'></html>" );
wv.loadDataWithBaseURL("file://"+imgFile.getAbsolutePath(),
html,
"text/html",
"utf-8",
"");
}
答案 1 :(得分:0)
您需要使用GestureDetectors。 Google为此提供了优秀的示例interactiveChart,请参阅https://android.googlesource.com/platform/development/+/master/samples/training/InteractiveChart和http://developer.android.com/training/gestures/scroll.html