Android通过滑动实现Activity跳转(手势识别器应用)

发布时间 - 2026-01-11 01:16:57    点击率:

通过手势识别器实现界面的转跳,具体内容如下

1、创建 GestureDetector对象
2、创建新类继承SimpleOnGestureListener类(创建 GestureDetecto需要的参数)
3、重写SimpleOnGestureListener中的OnFling()方法。(滑动手势监听)
4、重写界面的OntouchEvent方法
5、通过 GestureDetector对象的onTouchEvent()添加事件

代码如下:

public abstract class BaseActivity extends AppCompatActivity {

  private GestureDetector gue;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_base);
    //这里的第一个参数是上下文,第二个是手势监听器
    gue = new GestureDetector(this, new MyGestureListener());
  }

  class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
//onFling方法的第一个参数是 手指按下的位置, 第二个参数是 手指松开的位置,第三个参数是手指的速度 

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
      float startX = e1.getX();//通过e1.getX()获得手指按下位置的横坐标
      float endX = e2.getX();//通过e2.getX()获得手指松开位置的横坐标
      float startY = e1.getY();//通过e1.getY()获得手指按下位置的纵坐标
      float endY = e2.getY();//通过e2.getY()获得手指松开的纵坐标
      if ((startX - endX) > 50 && Math.abs(startY - endY) < 200) {
      //(startX - endX) > 50 是手指从按下到松开的横坐标距离大于50
      // Math.abs(startY - endY) < 200 是手指从按下到松开的纵坐标的差的绝对值

        //在这里通过Intent实现界面转跳
      }

      if ((endX - startX) > 50 && Math.abs(startY - endY) <200) {
        //在这里通过Intent实现界面转跳
      }
//返回值是重点:如果返回值是true则动作可以执行,如果是flase动作将无法执行
      return true;
    }
  }

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    gue.onTouchEvent(event);
    return super.onTouchEvent(event);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # 界面跳转  # 手势识别器  # Android中应用界面主题Theme使用方法和页面定时跳转应用  # Android如何跳转到应用商店的APP详情页面  # android 跳转到应用通知设置界面的示例  # android判断手机是否安装地图应用实现跳转到该地图应用  # Android 应用中跳转到应用市场评分示例  # Android应用自动跳转到应用市场详情页面的方法  # Android应用闪屏页延迟跳转的三种写法  # Android 8.0升级不跳转应用安装页面的解决方法  # Android实现外部唤起应用跳转指定页面的方法  # 按下  # 在这里  # 第一个  # 第二个  # 重写  # 返回值  # 第三个  # 具体内容  # 大家多多  # AppCompatActivity  # private  # gue  # abstract  # BaseActivity  # extends  # Override  # Bundle  # savedInstanceState  # super  # protected 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  如何挑选优质建站一级代理提升网站排名?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel如何实现数据库事务?(DB Facade示例)  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  WordPress 子目录安装中正确处理脚本路径的完整指南  Laravel如何实现一对一模型关联?(Eloquent示例)  如何快速查询网站的真实建站时间?  用yum安装MySQLdb模块的步骤方法  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何在新浪SAE免费搭建个人博客?  利用vue写todolist单页应用  如何在阿里云高效完成企业建站全流程?  Laravel怎么实现模型属性的自动加密  手机网站制作与建设方案,手机网站如何建设?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Python制作简易注册登录系统  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Laravel如何处理表单验证?(Requests代码示例)  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Python文件流缓冲机制_IO性能解析【教程】  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  如何在景安服务器上快速搭建个人网站?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  javascript中闭包概念与用法深入理解  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  jQuery validate插件功能与用法详解  如何在万网ECS上快速搭建专属网站?  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  php打包exe后无法访问网络共享_共享权限设置方法【教程】  python中快速进行多个字符替换的方法小结  网站制作壁纸教程视频,电脑壁纸网站?  如何快速上传建站程序避免常见错误?