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


相关推荐: WEB开发之注册页面验证码倒计时代码的实现  微信小程序 input输入框控件详解及实例(多种示例)  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Android GridView 滑动条设置一直显示状态(推荐)  如何快速搭建支持数据库操作的智能建站平台?  如何在万网自助建站平台快速创建网站?  JS实现鼠标移上去显示图片或微信二维码  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel如何使用Livewire构建动态组件?(入门代码)  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  网站建设保证美观性,需要考虑的几点问题!  Python结构化数据采集_字段抽取解析【教程】  浅谈javascript alert和confirm的美化  智能起名网站制作软件有哪些,制作logo的软件?  如何利用DOS批处理实现定时关机操作详解  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  郑州企业网站制作公司,郑州招聘网站有哪些?  Python数据仓库与ETL构建实战_Airflow调度流程详解  nginx修改上传文件大小限制的方法  php 三元运算符实例详细介绍  长沙企业网站制作哪家好,长沙水业集团官方网站?  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何快速辨别茅台真假?关键步骤解析  做企业网站制作流程,企业网站制作基本流程有哪些?  重庆市网站制作公司,重庆招聘网站哪个好?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何破解联通资金短缺导致的基站建设难题?  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  如何快速搭建高效简练网站?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  如何获取上海专业网站定制建站电话?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  android nfc常用标签读取总结  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  在centOS 7安装mysql 5.7的详细教程  如何确保西部建站助手FTP传输的安全性?  新三国志曹操传主线渭水交兵攻略  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  打造顶配客厅影院,这份100寸电视推荐名单请查收  Laravel如何处理CORS跨域请求?(配置示例)  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?