实现类似Android风云直播手机端注册登录页,当手势向下滑动的时候,关闭页面的效果。

使用GestureDetector来实现这个效果,当手势在屏幕上面滑动的时候 ,会掉用onFling方法,所以,在这个方法里面做判断和操作即可。

好了 ,作为一个老程序员了,原理就不讲了,直接上代码,相信你会看懂的,有问题,直接留言或者联系我,我会第一时间回复的。

(今天感谢一个网友@奋斗 的反馈,由于我的失误,忘记把启动手势识别器的代码贴出来了,所以重新编辑了一下,感谢大家的支持!)

效果如下:

一、实现手势下滑关闭功能。

1.在onCreate方法里面重写 GestureDetector的方法

private GestureDetector mGestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_login); mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
// if (Math.abs(e1.getRawX() - e2.getRawX()) > 250) {
// // System.out.println("水平方向移动距离过大");
// return true;
// }
if (Math.abs(velocityY) < 100) {
// System.out.println("手指移动的太慢了");
return true;
} // 手势向下 down
if ((e2.getRawY() - e1.getRawY()) > 200) {
finish();//在此处控制关闭
return true;
}
// 手势向上 up
if ((e1.getRawY() - e2.getRawY()) > 200) {
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}
}); }

调用这句的代码启动手势识别器:

     //2.让手势识别器 工作起来
//当activity被触摸的时候调用的方法.
@Override
public boolean onTouchEvent(MotionEvent event) {
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}

2.同样,如果你想要控制左滑和右滑,直接使用getRawX()方法即可,可以尝试。

二、实现下拉和上抽动画效果。

动画效果实现,重写上抽和下拉的动画效果,可以使用Android自带的一个方法,在finish()方法之前进行调用:

overridePendingTransition(R.anim.slide_up_in, R.anim.slide_up_out);

R.anim.slide_up_out

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <translate
android:duration="200"
android:fromYDelta="0%"
android:interpolator="@android:anim/accelerate_interpolator"
android:toYDelta="100%" /> </set>
R.anim.slide_up_in:
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
android:duration="300"
android:fromYDelta="-100%"
android:interpolator="@android:anim/accelerate_interpolator"
android:toYDelta="0%" /> </set>

快去试试吧!

android使用GestureDetector实现手势下滑关闭页面的效果。的更多相关文章

  1. Android使用GestureDetector实现手势滑动效果

    直接看实例: package com.example.gesturedetector; import android.os.Bundle; import android.app.Activity; i ...

  2. android 判断左右滑动,上下滑动的GestureDetector简单手势检测

    直接加入监听GestureDetector放在需要判断滑动手势的地方: import android.app.Activity; import android.os.Bundle; import an ...

  3. HBuilder mui 手机app开发 Android手机app开发 ios手机app开发 打开新页面 预加载页面 关闭页面

    创建子页面 在mobile app开发过程中,经常遇到卡头卡尾的页面,此时若使用局部滚动,在android手机上会出现滚动不流畅的问题: mui的解决思路是:将需要滚动的区域通过单独的webview实 ...

  4. 手势识别官方教程(2)识别常见手势用GestureDetector+手势回调接口/手势抽象类

    简介 GestureDetector识别手势. GestureDetector.OnGestureListener是识别手势后的回调接口.GestureDetector.SimpleOnGesture ...

  5. JavaScript打开窗口与关闭页面操作大全

    JavaScript新开窗口 onClick="javascript:window.location='http://www.sowsoy.com'" JavaScript新开一个 ...

  6. android学习笔记52——手势Gesture,增加手势、识别手势

    手势Gesture,增加手势 android除了提供了手势检测之外,还允许应用程序把用户手势(多个持续的触摸事件在屏幕上形成特定的形状)添加到指定文件中,以备以后使用 如果程序需要,当用户下次再次画出 ...

  7. mui中的关闭页面的几种方法

    一.总结: mui中关闭当前页面的几种方式: 1.swipeBack(暂未测试过) 2.keyEventBind(暂未测试过) 3.给标签的class加.mui-action-back(返回的是前一个 ...

  8. 【Android 界面效果27】利用ViewPager、Fragment、PagerTabStrip实现多页面滑动效果

    本文主要介绍如何利用ViewPager.Fragment.PagerTabStrip实现多页面滑动效果.即google play首页.新浪微博消息(at.评论.私信.广播)页面的效果.ViewPage ...

  9. 【转】Android:Bluetooth 的打开和关闭--不错

    原文网址:http://www.ifeegoo.com/android-turn-on-and-turn-off-bluetooth.html 摘要:Android 中打开和关闭 Bluetooth ...

随机推荐

  1. the network bridge on device vmnet0 is not running解决方法

    最近电脑装上win8,在安装vm 7.1.4 安装后发现网络连接中的网桥模式不能使用. 原来在本地连接里少了:VMware Bridge Protocol 最后的解决方案如下: 打开物理网卡本地连接- ...

  2. CentOS 7安装Hadoop 3.0.0

    最近在学习大数据,需要安装Hadoop,自己弄了好久,最后终于弄好了.网上也有很多文章关于安装Hadoop的,但总会遇到一些问题,所以把在CentOS 7安装Hadoop 3.0.0的整个过程记录下来 ...

  3. Lucene学习——IKAnalyzer中文分词

    一.环境 1.平台:MyEclipse8.5/JDK1.5 2.开源框架:Lucene3.6.1/IKAnalyzer2012 3.目的:测试IKAnalyzer的分词效果 二.开发调试 1.下载框架 ...

  4. R-向量

  5. linux下性能分析命令[总结]

    1.前言 在linux下开发程序,为了追求高性能,经常需要测试程序的性能,包括cpu.内存.io.网络等等使用情况.liunx下提供了众多命令方便查看各种资源的使用情况.经常用的有ps.top.fre ...

  6. 强大的Mockito测试框架

    转载:https://blog.csdn.net/dc_726/article/details/8568537 1自动生成Mock类   在需要Mock的属性上标记@Mock注解,然后@RunWith ...

  7. C 语言宏定义

    C 语言宏定义1.例子如下: #define PRINT_STR(s) printf("%s",s.c_str()) string str = "abcd"; ...

  8. ESXI 6.5 从载到安装

    下载ESXI 访问官网 https://www.vmware.com 到download,选择vsphere 下载esxi https://my.vmware.com/en/group/vmware/ ...

  9. Android自己定义View之仪表盘

    新建项目,新建DashBoardView继承自View实现OnGlobalLayoutListener接口,并重写OnDraw方法. 使用OnGlobalLayoutListener接口须要重写onG ...

  10. 被查封7周之后,全球最大BT网站“海盗湾”又重新活过来了【36kr】

    原文地址 原文地址 "免费"和"版权","自由"和"监管"永远在较量啊,矛盾共同体,事物的两面性~ 被查封7周之后,全球 ...