AndroidStudio|左右滑动切换界面效果

2023-05-16

  1. 通过Layout控件捕捉onTouch事件,所以要实现OnTouchListener接口;
  2. 当用户触摸屏幕的时候,会产生许多手势,这里就包括滑动效果。通过GestureDetector类,我们可以识别很多的手势。所以要实现GestureDetector.OnGestureListener接口,将Touch事件传入GestureDetector对象进行处理。
  • 实现两个接口
public class MyActivity extends Activity implements View.OnTouchListener,GestureDetector.OnGest- ureListener {
    private RelativeLayout mLinearLayout;
    private GestureDetector mGestureDetector;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_face_idcard_identify);
        findView();
    }
  • 给控件注册OnTouch事件,并且允许响应长点击事件
    private void findView() {
        mLinearLayout = (RelativeLayout) findViewById(R.id.Face_IDCard_Layout);
        mLinearLayout.setOnTouchListener(this);
        mLinearLayout.setLongClickable(true);
        mGestureDetector = new GestureDetector(this, this);
    }
  • 实现手势识别接口中的方法
       //用户按下屏幕就会触发:
    @Override
    public boolean onDown(MotionEvent e) {
        return false;
    }
      //短按触摸屏
    @Override
    public void onShowPress(MotionEvent e) {
    }
      //点击屏幕后抬起时触发该事件
    @Override
    public boolean onSingleTapUp(MotionEvent e) {
        return false;
    }
      //在屏幕上拖动控件
    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        return false;
    }
      //长按触摸屏
    @Override
    public void onLongPress(MotionEvent e) {
    }
      //滑屏,用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个        //ACTION_UP触发;参数分别表示:按下事件、抬起事件、x方向移动速度、y方向移动速度。   
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        final int FLING_MIN_DISTANCE = 100;
        final int FLING_MIN_VELOCITY = 200;
        if (Math.abs((int) (e1.getX() - e2.getX())) > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) { //左滑右滑皆可
            Intent intent = new Intent(this, VideoMatchIdentifyGlassesActivity.class);
            startActivity(intent);
            finish();
        }
        return false;
    }
  • 实现OnTouchListener接口中的方法
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return mGestureDetector.onTouchEvent(event);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AndroidStudio|左右滑动切换界面效果 的相关文章

随机推荐

  • 基于ROS平台的STM32小车-2-小车底盘控制

    本博文将介绍小车底盘控制的原理 xff0c 如PID控制 xff0c 控制程序的编写等 小车控制思想 控制电机转动 电机的控制我们分为两部分 xff0c 一部分为电机转动方向的控制 xff0c 另一个为电机转速的控制 电机转动的方向我们用两
  • Pangolin 安装及其使用

    Pangolin是对OpenGL进行封装的轻量级的OpenGL输入 输出和视频显示的库 可以用于3D视觉和3D导航的视觉图 xff0c 可以输入各种类型的视频 并且可以保留视频和输入数据用于debug 安装 安装的链接是Pangolin的地
  • KPI异常检测

    异常 xff1a 预期值与真实值有很大的差异 统计的方法 3 sigma 刻画异常的程度 xff0c 数据需要接近高斯分布 xff0c 如果不是可以通过高斯分布或者tan变换 可以先看一下数据分布图 xff0c 看一下数据的分布情况 box
  • 如何干掉那又丑又长的switch..case语句

    1 前言 在实际的编程中 xff0c 我们经常会使用到switch case语句 xff0c 这通常也是对一长串if else if语句的优化 对于一些简单的情况 xff08 只每个case代码中代码长度不会很长 xff0c 而且case分
  • 编译安装Openvins过程中遇到的问题

    openvins的编译是依赖opencv contrib库的 xff0c 需要重新下载编译安装opencv xff0c opencv和opencv contrib的版本要对应一致 遇到问题的解决方法参考如下链接 xff1a https bl
  • docker镜像启动后端口号是多少_RSS、智能家居、个人博客、维基百科……Docker 入门指南...

    如果你购买过 VPS 云主机 xff0c 那么或多或少 xff0c 你都可能听说过 Docker 如果你从未听说过 Docker xff0c 那么本文可能能够为你开启新世界 利用 Docker xff0c 你能够非常轻松地部署各类服务 xf
  • linux can接收数据出错,CAN为什么会发送失败

    CAN总线调试过程中出现报文发送失败 xff0c 很多工程师都对此只知其一不知其二 xff0c 这里就CAN报文发送失败的问题我们来做一次探讨 在了解CAN报文为什么会发送失败之前我们先看看一条正确的CAN报文到底应该是怎么样的 xff0c
  • Unity | 总结:OCR文字识别、公式识别

    一 功能简介 xff1a 最近在做一个项目 xff1a 运用OCR文字识别 公式识别 手写英文识别等AI技术 xff0c 当用户批量导入图片或者PDF文件时可快速识别为可编辑文本 xff0c 该项目主要功能有 xff1a 印刷体识别 手写英
  • Unity | 打开文件对话框批量选择文件

    之前在新浪博客写了一篇关于打开文件对话框批量选择文件的文章 xff0c 可惜新浪博客不能写代码 xff0c 奈何当时太年轻 xff0c 并不觉得不方便 xff0c 直到遇到CSDN emmm xff0c 不想将就了 xff0c 所以在这里更
  • C++ | boost库入门

    目录 一 boost库简介 二 boost库安装及编译 1 目录结构说明 2 编译静态库 3 构建工具b2 三 boost库的简单使用 一 boost库简介 Boost是一个功能强大 构造精良 跨越平台 代码开源 完全免费的 C 43 43
  • C++ | boost库之智能指针

    目录 一 RAII机制 二 智能指针 1 C 43 43 98下auto ptr 2 boost scoped ptr 3 boost shared ptr make shared shared ptr应用于标准容器 定制删除器 weak
  • CMake I execute_process命令详解(配置)

    execute process COMMAND lt cmd1 gt lt arguments gt COMMAND lt cmd2 gt lt arguments gt WORKING DIRECTORY lt directory gt
  • CMake I add_custom_command命令详解(构建)

    目录 一 add custom command 1 执行有输出文件的自定义操作 2 执行没有输出的自定义操作 二 应用 1 执行有输出文件的自定义操作 2 执行没有输出的自定义操作 CMake提供了三个选项来在构建时执行自定义命令 xff0
  • ECMAScript6学习笔记-数组扩展

    1 扩展运算符 扩展运算符是三个点 xff0c 将一个数组转为用逗号分割的参数序列 console log span class hljs keyword span span class hljs number 1 span span cl
  • Cmake | ExternalProject_Add函数详解(构建时)

    目录 一 目录选项 1 PREFIX 2 TMP DIR 3 STAMP DIR 4 LOG DIR 5 DOWNLOAD DIR 6 SOURCE DIR 7 BINARY DIR 8 INSTALL DIR 二 下载配置 1 URL 2
  • OpenGL | 入门-零碎总结

    1 powf 幂函数 Pow函数是一种可以快速计算非线性关系的数学函数 xff0c 它的特点是任意非负整数x的n次幂可以快速计算 Pow函数可以通过数学方式简单地计算一个数的平方根 xff0c 立方根或任意次根 它主要用于计算连续的 非线性
  • OpenGL进阶 | GLM数学库& Shader相关

    一 GLM数学库 OpenGL和DirextX不一样 xff0c 没有内置的数学库 xff0c 于是我们需要找一个第三方数学库来完成OpenGL相关的数学计算 GLM库是一个为OpenGL准备的数学库 xff0c 它提供了各种数学运算的函数
  • OpenGL进阶 | 绘制一个三角形

    一 准备绘图数据 VBO xff08 Vertex Buffer Object xff09 在opengl中 xff0c 所有的数据都要放在显存中 xff0c 通过VBO xff08 Vertex Buffer Object xff09 可
  • AndroidStudio打开蓝牙、搜索目标设备并进行连接

    一 设置权限 要操作蓝牙 xff0c 先要在AndroidManifest xml里加入权限 xff1a BLUETOOTH xff1a 允许程序连接到已配对的蓝牙设备 BLUETOOTH ADMIN xff1a 允许程序发现和配对蓝牙设备
  • AndroidStudio|左右滑动切换界面效果

    通过Layout控件捕捉onTouch事件 xff0c 所以要实现OnTouchListener接口 xff1b 当用户触摸屏幕的时候 xff0c 会产生许多手势 xff0c 这里就包括滑动效果 通过GestureDetector类 xff