andriod之WebView,如何实现带划屏手势的浏览器

 1.WebView的设置

 
  1. 1 private void showViews() { 2 // TODO Auto-generated method stub 3 mGestureDetector = new GestureDetector(this);//实例化手势对象 4 wv_vm.getSettings().setSupportZoom(true);//启用页面的缩放 5 wv_vm.getSettings().setBuiltInZoomControls(true);//启用页面缩放的按钮 6 wv_vm.getSettings().setJavaScriptEnabled(true);//启用javascript支持 7 wv_vm.loadUrl("http://www.cnblogs.com/pxue/");//加载网址 8 9 wv_vm.setOnTouchListener(this);//监听触摸事件10 wv_vm.setClickable(true);11 wv_vm.setLongClickable(true);12 13 14 mGestureDetector.setIsLongpressEnabled(true); 15 16 17 wv_vm.setWebViewClient(new HelloWebViewClient());//实现点击加载页面在本webview内载入18 wv_vm.setFocusable(true);19 wv_vm.requestFocus();20 21 }

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

  1. 1 private class HelloWebViewClient extends WebViewClient {2 @Override3 public boolean shouldOverrideUrlLoading(WebView view, String url) {4 view.loadUrl(url);5 return true;6 }7 }

2.划屏手势部分
监听触摸时间传给手势对象
 

  1. 1 @Override2 public boolean onTouch(View v, MotionEvent event) {3 // TODO Auto-generated method stub4 // Toast.makeText(this, "onTouch", Toast.LENGTH_SHORT).show(); 5 return mGestureDetector.onTouchEvent(event); 6 }

重写了划动事件
 

  1. 1 @Override 2 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 3 float velocityY) { 4 // TODO Auto-generated method stub 5 if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE 6 && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 7 wv_vm.goBack(); 8 } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE 9 && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {10 11 wv_vm.goForward();12 }13 return false;14 }

变量、常量的声明
 

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


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

  1. 1 private void setListensers() { 2 // TODO Auto-generated method stub 3 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 4 startActivityForResult(intent, 1); 5 6 } 7 8 private void findViews() { 9 // TODO Auto-generated method stub10 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 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值