`
yanghaoli
  • 浏览: 291359 次
社区版块
存档分类
最新评论

Android:WebView带划屏手势的浏览器实现

 
阅读更多
写了简单 Android环境下基于webview的浏览器,实现划屏切换页面的手势,在一个activity里webview的缓冲内切换的。并测试下调用系统拍照的功能
MVC模式(Model-View-Controller)
1.WebView的设置部分
01 private void showViews() {
02 // TODO Auto-generated method stub
03 mGestureDetector = new GestureDetector(this);//实例化手势对象
04 wv_vm.getSettings().setSupportZoom(true);//启用页面的缩放
05 wv_vm.getSettings().setBuiltInZoomControls(true);//启用页面缩放的按钮
06 wv_vm.getSettings().set<SPAN class=wp_keywordlink_affiliate><A title=JavaScript href="http://www.mikel.cn/category/%e5%bc%80%e5%8f%91%e7%ac%94%e8%ae%b0/javascript" target=_blank>JavaScript</A></SPAN>Enabled(true);//启用<SPAN class=wp_keywordlink_affiliate><A title=JavaScript href="http://www.mikel.cn/category/%e5%bc%80%e5%8f%91%e7%ac%94%e8%ae%b0/javascript" target=_blank>JavaScript</A></SPAN>支持
07 wv_vm.loadUrl("http://www.cnblogs.com/pxue/");//加载网址
08   
09 wv_vm.setOnTouchListener(this);//监听触摸事件
10 wv_vm.setClickable(true);
11 wv_vm.setLongClickable(true);
12   
13 mGestureDetector.setIsLongpressEnabled(true);
14   
15 wv_vm.setWebViewClient(new HelloWebViewClient());//实现点击加载页面在本webview内载入
16 wv_vm.setFocusable(true);
17 wv_vm.requestFocus();
18   
19 }

在WebView加载新开的页面,是重写了Android.webkit.WebViewClient

1 private class HelloWebViewClient extends WebViewClient {
2 @Override
3 public boolean shouldOverrideUrlLoading(WebView view, String url) {
4 view.loadUrl(url);
5 return true;
6 }
7 }
2.划屏手势部分
监听触摸时间传给手势对象
1 @Override
2 public boolean onTouch(View v, MotionEvent event) {
3 // TODO Auto-generated method stub
4 // Toast.makeText(this, "onTouch", Toast.LENGTH_SHORT).show();
5 return mGestureDetector.onTouchEvent(event);
6 }

重写了划动事件

01 @Override
02 public boolean onFling(MotionEvent e1, MotionEvent e2, float <SPAN class=wp_keywordlink_affiliate><A title=Velocity href="http://www.mikel.cn/tag/velocity/" target=_blank>Velocity</A></SPAN>X,
03 float <SPAN class=wp_keywordlink_affiliate><A title=Velocity href="http://www.mikel.cn/tag/velocity/" target=_blank>Velocity</A></SPAN>Y) {
04 // TODO Auto-generated method stub
05 if (e1.getX() - e2.getX() &gt; SWIPE_MIN_DISTANCE
06 &amp;&amp; Math.abs(<SPAN class=wp_keywordlink_affiliate><A title=Velocity href="http://www.mikel.cn/tag/velocity/" target=_blank>Velocity</A></SPAN>X) &gt; SWIPE_THRESHOLD_VELOCITY) {
07 wv_vm.goBack();
08 } else if (e2.getX() - e1.getX() &gt; SWIPE_MIN_DISTANCE
09 &amp;&amp; Math.abs(velocityX) &gt; SWIPE_THRESHOLD_VELOCITY) {
10   
11 wv_vm.goForward();
12 }
13 return false;
14 }

变量、常量的声明

1 private GestureDetector mGestureDetector;
2   
3 private static final int SWIPE_MIN_DISTANCE = 120;
4 private static final int SWIPE_THRESHOLD_VELOCITY = 200;

3.调用系统拍照功能部分

01 private void setListensers() {
02 // TODO Auto-generated method stub
03 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
04 startActivityForResult(intent, 1);
05   
06 }
07   
08 private void findViews() {
09 // TODO Auto-generated method stub
10 img_pic=(ImageView)findViewById(R.id.img_pic);
11   
12 }
13   
14 protected void onActivityResult(int requestCode, int resultCode, Intent data)
15 {
16 if (requestCode == 1)
17 {
18 if (resultCode == Activity.RESULT_OK)
19 {
20 // 拍照Activity保存图像数据的key是data,返回的数据类型是Bitmap对象
21 Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data");
22 // 在ImageView组件中显示拍摄的照片
23 img_pic.setImageBitmap(cameraBitmap);
24 }
25 }
26 super.onActivityResult(requestCode, resultCode, data);
27 }
小demo的源码本来上传到csdn了,可在我上传的资源就是找不到,可能在审核,等我之后不上下载链接吧
想要demo源码也可以邮件给我
邮箱: 625557711@qq.com
1
5
分享到:
评论

相关推荐

    android 系统自带app源码之浏览器

    8. **手势与触摸事件**:Browser应用处理用户的触摸事件,比如滑动、缩放等,这些都是通过重写`WebView`的触摸事件处理方法实现的。 9. **性能优化**:源码中可以看到对`WebView`的一些性能优化,如异步加载、预...

    Android WebView上下滑动显示隐藏头部

    总结来说,实现"Android WebView上下滑动显示隐藏头部"的功能,主要步骤包括: 1. 创建并设置WebView,加载网页。 2. 使用`GestureDetector`监听滑动事件。 3. 根据滑动方向控制头部视图的显示和隐藏,可使用`...

    基于安卓Android的浏览器源码.zip

    - Android浏览器支持JavaScript与Java之间的交互,通过WebView的JavaScriptInterface或WebChromeClient、WebSettings等API实现。 7. **安全与隐私**: - 源码中应包含对HTTPS、证书验证、跨站脚本攻击(XSS)和跨...

    Android 仿QQ浏览器WebView,滑动隐藏显示ActionBar效果

    在Android开发中,为了提供更好的用户体验...以上就是实现"Android 仿QQ浏览器WebView,滑动隐藏显示ActionBar效果"所需的关键技术点。在实际项目中,还需要根据具体需求进行调整和优化,确保功能的完整性和用户体验。

    Android程序研发源码Android 网页浏览器源码.rar

    1. **WebView组件**:Android中的WebView是实现网页浏览功能的核心组件。它允许你在应用程序内部加载和显示HTML、CSS和JavaScript内容。开发者可以使用WebView.loadUrl()方法加载网页,并通过WebSettings类调整...

    Android 浏览器(基于WebKit) 源代码

    WebView是Android SDK中的一个类,允许开发者在应用程序中嵌入网页内容,或者实现自定义的浏览器功能。WebView使用Chromium(WebKit的一个分支)作为其渲染引擎,提供与桌面浏览器相似的性能和兼容性。 三、Android...

    webview组件实现刷新后退

    在Android开发中,WebView是一个非常重要的组件,它允许我们在原生应用中嵌入网页内容,实现类似浏览器的功能。本教程将深入讲解如何使用WebView组件来实现刷新、后退和前进功能,以及如何在启动时展示应用LOGO并在...

    android简易浏览器

    在Android平台上,开发一款简易浏览器涉及许多核心知识点,这些知识点涵盖了Android应用开发的基础以及网络请求处理。以下将详细解析这些关键点: 1. **Android基础知识**:首先,开发者需要掌握Android的基本架构...

    Unity 3D web插件 3D WebView for Android and iOS Web Browser 4.2.2

    3. **手势识别**:可能支持滑动、缩放等手势操作,以实现与原生浏览器类似的用户体验。 4. **安全特性**:可能包含对HTTPS的支持,确保数据传输的安全性。 5. **错误处理**:提供错误报告和异常处理机制,帮助开发者...

    Android仿UC浏览器项目

    在本项目中,我们主要探讨的是一个基于Android平台的仿UC浏览器的应用开发。这个项目旨在帮助开发者理解如何构建一个功能齐全、用户体验良好的移动浏览器。UC浏览器是中国非常流行的一款手机浏览器,以其快速、节省...

    WebView实现全屏播放

    【WebView实现全屏播放】是Android开发中一个重要的应用场景,主要涉及到如何在WebView中嵌入视频并实现全屏播放的功能。这一技术广泛应用于各种移动应用,例如社交媒体、在线教育平台等,让用户能够在不离开应用的...

    Android webview使用方法总结

    Android WebView 使用方法总结 Android WebView 是一个非常强大的控件,允许开发者在 ...Android WebView 使用方法总结的知识点非常重要,掌握这些知识点可以帮助开发者更好地使用 WebView,并实现更加复杂的功能。

    android-components,Android库的集合,用于构建浏览器或类似浏览器的应用程序。.zip

    在Android开发领域,构建一个浏览器或者类似浏览器的应用程序是一个复杂且技术含量高的任务。"android-components"是一个专门针对这一需求的开源项目,它提供了一系列的Android库,旨在简化这一过程,帮助开发者更...

    android浏览器实现

    在Android平台上,自定义浏览器的实现是一个涉及到许多技术点的项目。这个压缩包可能包含了一个基本的Android浏览器应用的源代码,供学习和参考。以下是一些关于Android浏览器实现的关键知识点: 1. **WebView组件*...

    Android 网页浏览器源码.rar

    在Android平台上,开发一款网页浏览器是一项复杂而有挑战性的任务,涉及到多个技术层面。...通过深入分析和学习这个源码,开发者不仅可以了解Android浏览器的实现原理,还可以提升自己的Android开发技能。

    ZxBrowser:一个简介的浏览器程序, 仿照Via的做法, 使用Android自有WebView,持续更新中

    ZxBrowser是一款基于Android平台的开源浏览器应用,其设计灵感来源于 Via 浏览器,并且采用了Android系统自带的WebView组件进行开发。通过实践构建这样一个浏览器,开发者可以更深入地理解和掌握WebView的相关技术,...

    Android源码——Zirco浏览器源码.zip

    【Android源码——Zirco浏览器源码】是Android平台上的一款开源浏览器的源代码,它为开发者提供了深入理解Android浏览器实现机制的宝贵资料。通过分析Zirco浏览器的源码,我们可以学习到如何在Android系统上构建一个...

    安卓Android源码——zirco-browser浏览器源码.zip

    在安卓(Android)平台上,开发一款浏览器应用是一个复杂的任务,涉及到许多底层的系统接口和组件。Zirco-Browser是一款开源的浏览器项目,其源码提供了深入理解Android浏览器开发的宝贵资源。通过分析Zirco-Browser...

    Android应用源码之Zirco-browser:超越海豚的开源浏览器.zip

    通过阅读和分析源代码,可以学习到如何与Android系统进行交互,如何使用WebView组件来加载和呈现网页,以及如何实现浏览器的高级功能,如JavaScript接口集成、URL过滤和安全证书管理等。此外,源码中的错误处理和...

    安卓浏览器源码 功能齐全

    1. **WebView组件**:在Android系统中,WebView是实现网页显示的核心组件,它是Android版的内置浏览器引擎,负责加载和渲染HTML内容。开发者需要理解如何配置和管理WebView,例如设置网页加载选项、处理JavaScript...

Global site tag (gtag.js) - Google Analytics