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


相关推荐: 香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何在VPS电脑上快速搭建网站?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  如何快速生成高效建站系统源代码?  网站制作免费,什么网站能看正片电影?  使用spring连接及操作mongodb3.0实例  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel storage目录权限问题_Laravel文件写入权限设置  在线制作视频的网站有哪些,电脑如何制作视频短片?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  C#如何调用原生C++ COM对象详解  JS中对数组元素进行增删改移的方法总结  Android利用动画实现背景逐渐变暗  成都网站制作公司哪家好,四川省职工服务网是做什么用?  如何快速搭建自助建站会员专属系统?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  js代码实现下拉菜单【推荐】  如何挑选最适合建站的高性能VPS主机?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel如何使用Vite进行前端资源打包?(配置示例)  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  JavaScript如何操作视频_媒体API怎么控制播放  canvas 画布在主流浏览器中的尺寸限制详细介绍  IOS倒计时设置UIButton标题title的抖动问题  如何在 Pandas 中基于一列条件计算另一列的分组均值  智能起名网站制作软件有哪些,制作logo的软件?  如何批量查询域名的建站时间记录?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  深入理解Android中的xmlns:tools属性  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  如何在景安服务器上快速搭建个人网站?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  详解Android——蓝牙技术 带你实现终端间数据传输  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  重庆市网站制作公司,重庆招聘网站哪个好?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  Laravel如何使用Sanctum进行API认证?(SPA实战)  如何快速生成ASP一键建站模板并优化安全性?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel项目怎么部署到Linux_Laravel Nginx配置详解