1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/**
 * 手势监听
 *
 * @author lifengfeng
 *
 */
public class MainActivity extends Activity implements OnTouchListener,
        OnGestureListener {
    // 创建一个用于识别收拾的GestureDetector对象
    @SuppressWarnings("deprecation")
    private GestureDetector detector = new GestureDetector(this);
    // 新建一个LinearLayout布局对象,这里是指主页面的布局
    private LinearLayout myLayout;
    // 限制最小移动像素
    private int FLING_MIN_DISTANCE = 110;
    // 定义的Toast提示框显示时间
    private int TIME_OUT = 1000;
    private static final String TAG = "Main";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myLayout = (LinearLayout) findViewById(R.id.test_layout);
        // 为布局绑定监听
        myLayout.setOnTouchListener(this);
    }
    /**
     * 手势滑动时别调用
     */
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        // X轴的坐标位移大于FLING_MIN_DISTANCE,且移动速度大于FLING_MIN_VELOCITY个像素/秒
        if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
            // 向左滑动
            Toast.makeText(this, "向左滑动", TIME_OUT).show();
        } else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE) {
            // 向右滑动
            Toast.makeText(this, "向右滑动", TIME_OUT).show();
        }
        return false;
    }
    /**
     * 长按时被调用
     */
    @Override
    public void onLongPress(MotionEvent e) {
        Log.d(TAG, "触发长按回调");
    }
    /**
     * 滚动时调用
     */
    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
            float distanceY) {
        return false;
    }
    /**
     * 在按下动作时被调用
     */
    @Override
    public boolean onDown(MotionEvent e) {
        Log.d(TAG, "按下回调");
        return false;
    }
    /**
     * 按住时被调用
     */
    @Override
    public void onShowPress(MotionEvent e) {
        Log.d(TAG, "按住不松回调");
    }
    /**
     * 抬起时被调用
     */
    @Override
    public boolean onSingleTapUp(MotionEvent e) {
        Log.d(TAG, "触发抬起回调");
        return false;
    }
    /**
     * 重写OnTouchListener的onTouch方法 此方法在触摸屏被触摸,即发生触摸事件(接触和抚摸两个事件)的时候被调用
     */
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        detector.onTouchEvent(event);
        return true;
    }
}

android手势滑动——左右滑动效果实现相关推荐

  1. Android手势下拉抽屉效果

    效果 手势拖动底部滑动上面,图二中拖动下拉 图二 Activity实现 package me.maxd.demo.activity;import android.annotation.Suppress ...

  2. android 手势操作垂直滑动,Android-水平和垂直方向都可滑动的RecycleView

    最近有点忙,项目进度跟的比较紧.最近需求那边让我们写一个左右和上下都可滑动的列表,用来展示多个Title的值.这里我把需求简化了一下.老规矩,先看图. 在看到需求的时候,有在网上看看有没有别人造好的轮 ...

  3. android activity滑动切换,Android 向右滑动切换Activity, 随着手势的滑动而滑动的效果...

    [实例简介] Android 向右滑动切换Activity, 随着手势的滑动而滑动的效果,项目详情http://blog.csdn.net/xiaanming/article/details/2093 ...

  4. Android 向右滑动销毁(finish)Activity, 随着手势的滑动而滑动的效果

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/20934541),请尊重他人的辛勤劳动成果,谢谢! 今天给大 ...

  5. Android 11.0 自定义仿小米全面屏手势导航左右手势滑动返回UI效果

    目录 1.概述 2.自定义仿小米全面屏手势导航返回ui布局的核心代码 3.自定义左右手势返回UI样式的核心代码功能分析 3.1 NavigationBarView手势导航布局左右手势返回的相关代码 3 ...

  6. Android 12.0 自定义仿小米全面屏手势导航左右手势滑动返回UI效果

    目录 1.概述 2.自定义仿小米全面屏手势导航左右手势滑动返回UI效果的核心类

  7. android自定义标尺,Android自定义标尺滑动选择值效果

    Android自定义标尺滑动选择值效果 发布时间:2020-10-16 07:40:15 来源:脚本之家 阅读:130 作者:676598624 本文实例为大家分享了Android实现滑动标尺选择值, ...

  8. Android 手势导航(从下往上滑动进入多任务页面)

    Android系统启动篇 1,<android系统启动流程简介> 2,<android init进程启动流程> 3,<android zygote进程启动流程> 4 ...

  9. Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18311877),请尊重他人的辛勤劳动成果,谢谢! 今天还是 ...

  10. Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果

    本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17539199) 我在上一篇文章中Android 带你从源码的角度解析 ...

最新文章

  1. go本地调用image-syncer
  2. Rokid发布YodaOS 并宣布代码开源
  3. 算法设计之—直接 遍历/穷举法、贪心算法、动态规划、回溯法、EM方法
  4. Java的String.format可以静态导入
  5. LeetCode 616. 给字符串添加加粗标签(Trie树)
  6. SPOJ NSUBSTR(后缀自动机)
  7. debian stretch + kernel 4.4 固件发布(支持硬件加速),可安装kodi
  8. UE4之读取图片并纹理贴图显示
  9. php劳务派遣系统,劳务派遣系统搭建
  10. 联邦学习:FedProx框架
  11. Android之Dex动态加载机制解析
  12. 斐那契波黄金数列MATLAB,广义斐波那契数列的性质及推广
  13. De-Sim示例分析(三)SIR传染病模型
  14. 如何批量给pdf文件加密?
  15. 使用windows自带虚拟机---Hyper-V 管理器
  16. unity屏幕适配以及坐标点适配
  17. CL210管理OPENSTACK网络--开放虚拟网络(OVN)简介
  18. python将图片转换成二进制文本_python将图片文件转换成base64编码的方法
  19. 【程序人生】:一些编程语言及发展方向
  20. java错误 找不到或无法加载主类_JAVA报找不到或无法加载主类的错误

热门文章

  1. Eclipse中新建Maven项目没有java以及test目录
  2. Java打印车票主要学习Java的比较语句
  3. Java两个列表根据属性去重_java8 如何对list操作 根据某一个字段进行判断去重对另一个字段进行累加 最终返回list?...
  4. leetcode-120-三角形最小路径和
  5. 暑假周报告(第三周)
  6. IntelliJ IDEA 添加项目后编译显示包不存在的解决方案
  7. 蓝桥杯 十进制数转八进制数
  8. ngui 输入事件处理
  9. android项目中刷新activity界面
  10. 存在网路的情况下重命名SDE中数据图层错误(The orphan junction feature class cannot be renamed)...