左滑与右滑/单击事件/长按事件/OnTouch()事件/GestureDetector - Android

> 缘起WebView的长按复制粘贴功能 - https://github.com/btate/BTAndroidWebViewSelection

请问webview怎么禁止系统的复制粘贴条出现?- https://www.zhihu.com/question/31991776

webview 长按选择复制- http://blog.csdn.net/kaiqiangzhang001/article/details/50773254
Android 浏览器开发中的小技巧,webview的复制功能- http://blog.csdn.net/ladyweiwei1234/article/details/9158799
  WebView的方法 HitTestResult mResult = webView.getHitTestResult();
  ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
                cmb.setText(content.trim()); //将内容放入粘贴管理器,在别的地方长按选择"粘贴"即可
                cm.getText();//获取粘贴信息

  可以通过反射调用WebView的一个私有方法Method m = WebView.class.getMethod("getSelection", null);
在Android 4.4中WebView是基于Chromium的可以直接访问 window.getSelection() 自己实现
这种支持2.2-4.0.3,Hack技巧不一定支持所有设备。

>  GestureDetector类对外提供了两个接口:OnGestureListener,OnDoubleTapListener,还有一个内部类SimpleOnGestureListener;SimpleOnGestureListener类是GestureDetector提供给我们的一个更方便的响应不同手势的类,它实现了上述两个接口,该类是static class,也就是说它实际上是一个外部类,我们可以在外部继承这个类,重写里面的手势处理方法。因此实现手势识别有两种方法,一种实现OnGestureListener接口,另一种是使用SimpleOnGestureListener类。

Android 触摸及手势操作GestureDetector- http://blog.csdn.net/xyz_lmn/article/details/16826669
用户手势检测-GestureDetector使用详解- http://blog.csdn.net/harvic880925/article/details/39520901

> 单击事件  长按事件  OnTouch()事件

private void initView() {
showBt = (Button) findViewById(R.id.show_bt);
showBt.setOnLongClickListener(this);
showBt.setOnClickListener(this);
showBt.setOnTouchListener(this);

showTv = (TextView) findViewById(R.id.show_tv);
showTv.setOnLongClickListener(this);
showTv.setOnClickListener(this);
showTv.setOnTouchListener(this);

showWv = (WebView) findViewById(R.id.show_wv);
showWv.loadUrl("www.baidu.com");
showWv.setOnLongClickListener(this);
showWv.setOnClickListener(this);
showWv.setOnTouchListener(this);
}

> Activity界面的左滑与右滑,右滑关闭页面,左滑打开一个新的页面

可以在GitHub上搜索SwipeBackLayout 
SwipeBackHelper - https://github.com/Jude95/SwipeBackHelper
  针对上一层Activity的显示,通过开发者工具中的“显示布局边界”或者“过度绘制”可以看到,微信无论是当前界面还是上一层界面都有绘制的边界,如下图。这可以说明微信没有使用截图的方式,大体上是和知乎一样,使用透明的Activity,通过令当前Activity透明达到下层Activity能够依旧显示效果。即GitHub上多数[SwipeBack](https://github.com/search?utf8=%E2%9C%93&q=SwipeBack)一样的实现原理。但这样的实现方式也存在着弊端,一方面下层Activity无法进入Paused生命周期,势必会对一些业务逻辑造成影响;另一方面手势左滑在一定程度上是和列表的滚动手势有交集,知乎客户端的全局返回经常遇到误操作的情况。
 针对滑动偏移,实质上就是一个手势位置的传递过程。根据当前滑动手势的位置相应让上层Activity的整体布局相应作出偏移,相应动画在SlidingMenu中也有实现。至于位置数据的传递,可以采用EventBus或者接口回调的方式。
  另外,通过“不保留活动”可以发现聊天界面和和主界面是在同一个Activity,聊天界面应该采用的Fragment的方式。这也体现在早期微信版本中的聊天界面的出现动画和其他界面不太相同。
  一种思路是截屏。就是滑动的时候其实底下的activity显示的是一张屏幕截图,动画结束之后在把这个图片删除,显示真正的view.

SlidingMenu的界面方案- https://github.com/jfeinstein10/SlidingMenu
  SlidingMenu依赖于另一个开源项目ActionBarSherlock - https://github.com/JakeWharton/ActionBarSherlock
  Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果- http://blog.csdn.net/xiaanming/article/details/20934541
  android实现向右滑动返回功能- http://blog.csdn.net/ff20081528/article/details/17845753
  android仿微信右滑finish窗口实现- http://www.jianshu.com/p/7a2a3518f0eb
  在Activity中实现手势从左往右滑动,销毁界面- http://blog.csdn.net/u011993368/article/details/45393043
  Activity左边滑出,右边滑入的动画切换的例子- http://download.csdn.net/detail/u012301841/8907457
  Android三种左右滑动效果 手势识别- http://www.cnblogs.com/ok-lanyan/archive/2012/08/02/2619701.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值