Android高级UI GestureDetector监听各种手势
来源:互联网 发布:苹果随机抽奖软件 编辑:程序博客网 时间:2024/06/05 11:36
内容
第一部分:介绍GestureDetector
第二部分:改造之前用ViewFlipper实现的实例,使用GestureDetector
实现图片切换功能。
要点
- 实现接口
OnTouchListener
,在onTouch()
方法中由GestureDetector
接管事件 - 接口
OnGestureListener
- 接口
OnDoubleTapListener
- 静态类
SimpleOnGestureListener
实现了2、3
两个接口,却没有做具体事情。可以继承该类,需要哪个就override
哪个部分。
xml
一般的布局即可
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/gesture_detector_linearlayout" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.feather.androiddemos.GestureDetectorActivity"></LinearLayout>
Java中使用GestureDetector
推荐使用SimpleOnGestureListener
//实现OnTouchListenerpublic class GestureDetectorActivity extends AppCompatActivity implements View.OnTouchListener{ private LinearLayout linearLayout; private GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_gesture_detector); linearLayout = (LinearLayout) findViewById(R.id.gesture_detector_linearlayout);//获取该布局 linearLayout.setOnTouchListener(this);//设置监听器 //获取GestureDetector gestureDetector = new GestureDetector(this, new SimpleOnGestureListener() //下面实现的class(类) ); } @Override public boolean onTouch(View v, MotionEvent event) { gestureDetector.onTouchEvent(event); //由GestureDetector进行接管,消耗掉event return false; } //继承静态类,重写相应方法 class SimpleOnGestureListener extends GestureDetector.SimpleOnGestureListener{ @Override//该方法就是按下时触发,此外还有近十种方法 public boolean onDown(MotionEvent e) { Toast.makeText(GestureDetectorActivity.this, "onDown", Toast.LENGTH_SHORT).show(); return super.onDown(e); } }}
ViewFliper和GestureDetector实现图片切换
之前ViewFliper
教程链接如下:http://blog.csdn.net/feather_wch/article/details/51535660
我们将在本教程基础上进行修改:
将ViewFlipperActivity
中置换为如下内容即可
public class ViewFlipperActivity extends AppCompatActivity implements View.OnTouchListener{ ViewFlipper viewFlipper = null; //ViewFlipper控件 GestureDetector gestureDetector = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_flipper); viewFlipper = (ViewFlipper) findViewById(R.id.ViewFlipper);//获取自动切换 viewFlipper.setOnTouchListener(this); gestureDetector = new GestureDetector(this, new SimpleOnGestureListener()); //初始化GestureDetector } @Override public boolean onTouch(View v, MotionEvent event) { //触屏 //使用GestureDetector gestureDetector.onTouchEvent(event); //GestureDetector接管触屏按键 return false; } //继承静态类,重写相应方法 class SimpleOnGestureListener extends GestureDetector.SimpleOnGestureListener{ @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if(e2.getX() - e1.getX() > 100)//从左向右 { //设置切换动画 viewFlipper.setInAnimation(AnimationUtils.loadAnimation(ViewFlipperActivity.this, R.anim.push_right_in)); viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(ViewFlipperActivity.this, R.anim.push_right_out)); //显示上一个View viewFlipper.showPrevious(); //从左向右,显示上一幅图片 }else if(e1.getX() - e2.getX() > 100) { //设置切换动画 viewFlipper.setInAnimation(AnimationUtils.loadAnimation(ViewFlipperActivity.this, R.anim.push_left_in)); viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(ViewFlipperActivity.this, R.anim.push_left_out)); viewFlipper.showNext(); //从左向右,显示下一幅图片 } return true; } public SimpleOnGestureListener() { super(); } }}
0 0
- Android高级UI GestureDetector监听各种手势
- Android手势监听类GestureDetector
- Android手势监听(GestureDetector类)
- Android手势监听类GestureDetector
- Android手势监听类GestureDetector的使用
- Android手势监听类GestureDetector的使用
- Android手势监听类GestureDetector的使用
- Android手势监听类GestureDetector的使用
- Android手势监听类GestureDetector的使用
- 手势监听GestureDetector 案例
- 手势监听GestureDetector
- GestureDetector手势监听Demo
- 手势监听 GestureDetector.SimpleOnGestureListener
- Android手势监听类GestureDetector的使用-哲学
- 触摸事件与手势监听--Android GestureDetector详解
- Android 简单的手势处理+监听的处理,用GestureDetector
- Android开发-自定义View-AndroidStudio(九)手势监听类GestureDetector
- 触摸事件与手势监听--Android GestureDetector详解
- Python机器视觉编程环境搭建方法
- fail-fast机制
- android学习之——界面 控件 体系 布局
- 实现收藏夹
- 第十三周项目2-动物这样叫
- Android高级UI GestureDetector监听各种手势
- MATLAB 信号处理
- poj 8466 火柴棒等式(预处理+搜索)
- cocos2d-x案例开发大全 几何跳跃源码解析及交叉编译再现
- 向App Store提交二进制文件时报错ERROR ITMS-90096
- 天气预报APP简单点的,准备做求大神出招
- UVa 1509 Leet 枚举
- onclick事件与href='javascript:function()'的比较
- ubuntu 耳机杂音大解决方法