`
wang_peng1
  • 浏览: 3905235 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

webview 切换及扩展

阅读更多

MyWebView[] webview =new MyWebView[2]; 
    flipper
= (ViewFlipper) findViewById(R.id.ViewFlipper); 
 
 webview
[i] = new MyWebView(this); 
 webview
[i].setWebViewClient(new HelloWebViewClient()); 
 webview
[i].getSettings().setJavaScriptEnabled(false); 
 webview
[i].setInitialScale(60);  
 webview
[i].getSettings().setBuiltInZoomControls(true); 
 
    flipper
.addView(webview[0]); 
    flipper
.addView(webview[1]); 

public class MyWebView extends WebView { 
  public MyWebView(Context context) { 
   super(context); 
  } 
 
 
 
@Override  
     public boolean onTouchEvent(MotionEvent evt) {    
 
         boolean consumed = super.onTouchEvent(evt);  
     if (isClickable()) {  
         switch (evt.getAction()) {  
     case MotionEvent.ACTION_DOWN:  
         lastTouchX = evt.getX();  
         lastTouchY = evt.getY(); 
         downXValue = evt.getX(); 
         downTime = evt.getEventTime(); 
         hasMoved = false;  
         break;  
     case MotionEvent.ACTION_MOVE:  
         hasMoved = moved(evt);  
         break;  
     case MotionEvent.ACTION_UP:  
        float currentX = evt.getX(); 
           long currentTime = evt.getEventTime(); 
           float difference = Math.abs(downXValue - currentX); 
           long time = currentTime - downTime; 
 
           Log.i("Touch Event:",  "Distance: " + difference + "px Time: " + time + "ms"); 
 
           if ( (downXValue < currentX) && (time < 220) && (difference > 100) ) { 
               go_back(); 
           } 
 
 
 
             if ( (downXValue > currentX) && (time < 220) && (difference > 100) ) { 
                   go_forward(); 
 
 
                  } 
 
                 //if (!moved(evt)) performClick();  
                 break;  
             }  
         }  
         return consumed || isClickable();  
     }  
  float downXValue; 
  long downTime; 
     private float lastTouchX, lastTouchY;  
     private boolean hasMoved = false;  
     private boolean moved(MotionEvent evt) {  
         return hasMoved ||  
             Math.abs(evt.getX() - lastTouchX) > 10.0 ||  
             Math.abs(evt.getY() - lastTouchY) > 10.0;  
     } 
 
 } 

 

分享到:
评论
1 楼 maniunet 2011-07-25  
这样webview左右滑动有了,但是如果webview内容较长的时候,上下的手势不能滚动查看内容了,请问如何能既可以左右滑动,但是不影响webview手势的上下滚动

相关推荐

    WebView:浮动WebView-电子

    网页浏览 浮动WebView-电子 Visual Studio Code中使用的“ Live Server”扩展的WebView页面,只要您需要编辑代码甚至在桌面上的其他应用程序之间切换时,该页面都将得到修复。

    Android代码-基于IjkPlayer的视频播放器,支持一行代码切换MediaPlayer和ExoPlayer

    DKPlayer A video player based on ...支持扩展自定义播放内核,MediaPlayer、ExoPlayer、vitamio等。 支持完全自定义控制层。 支持多路播放器同时播放,没有任何控制UI的纯播放 抖音demo。使用 1.添加类库 gradl

    Android代码-RecylerViewMultiHeaderView

    本库是基于RecyclerViewHeader的扩展。 RecyclerView头View的ViewGroup,支持与WebView,Video,View 嵌套使用 特性 webView完美嵌入RecyclerView RecyclerView和webView之间滑动惯性传递 滑动RecyclerView中视频...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview进行管理,实现对不同模块之间切换的控制。 (2)针对跨域数据交互问题,指出并分析了...

    Web端的UI框架BlendUI.zip

    搞定了业务无解的难题:页面过大导致卡顿,页面切换不流畅, Native组件嵌入能力。能将Native控件嵌入Webview中,这样就能让页面中那些性能较差的部分用Native来实现,以最大化地提高体验和交互。 与此同时,...

    《Android应用开发揭秘》源码

     第五部分 扩展篇  第16章 Android NDK开发  16.1 AndroidNDK简介  16.2 安装和配置NDK开发环境  16.2.1 系统和软件需求  16.2.2 NDK开发环境搭建  16.2.3 编译第一个NDK程序  16.3 AndroidNDK开发  16.3.1...

    《Android应用开发揭秘》附带光盘代码.

     2.3.2 运行HelloAndroid及模拟器的使用  2.3.3 调试HelloAndroid  2.4 小结  第二部分 基础篇  第3章 Android程序设计基础  3.1 Android程序框架  3.1.1 Android项目目录结构  3.1.2 Android应用解析  3.2...

    004-如何把教程配套的代码运行起来.avi

    020-双webview模式实现卡头卡尾代码重用.avi 021-加载子页面.avi 022-同时加载多个子页面.avi 023-底部选项卡切换.avi 024-点击底部选项卡切换标题栏文本.avi 025-商品列表页面.avi 026-商品列表页面制作.avi 027-...

    005-创建项目.avi

    020-双webview模式实现卡头卡尾代码重用.avi 021-加载子页面.avi 022-同时加载多个子页面.avi 023-底部选项卡切换.avi 024-点击底部选项卡切换标题栏文本.avi 025-商品列表页面.avi 026-商品列表页面制作.avi 027-...

    史上最全的ios开发源码

    苹果iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果...Webview之UIWebView 离线浏览

    Android应用开发揭秘pdf高清版

    2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 3.1.1 Android项目目录结构 3.1.2 Android应用解析 3.2 Android的生命...

    plone_site_into_mobile:作为 apk 的 Plone 站点(带有 PhoneGap 的 Android 应用程序)

    扩展您的构建以包含鸡蛋zettwerk.mobile并重新运行构建。 启动你的 Plone 实例,打开ZMI并创建一个 ID 为Mobile的 Plone 实例 创建后,切换到Plone的站点设置并单击附加配置中的移动主题链接。 将字段主机名更改...

    Android--UI-新手必备源码master.zip

    包括Android布局,弹窗,配色,单击事件,UI,精美炫酷的activity切换动画和空间动画,是新手必备的源码,内含相关的Dome 25件。 - - 文件夹 PATH 列表 卷序列号为 4E8D-6931 C:. │ .txt │ Android-UI-新手必备...

Global site tag (gtag.js) - Google Analytics