Android GestureDetector实现手势滑动效果
更新时间:2019年05月27日 11:17:39 作者:Vivinia_Vivinia
这篇文章主要为大家详细介绍了Android GestureDetector实现手势滑动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Android GestureDetector实现手势滑动的具体代码,供大家参考,具体内容如下
目标效果:

程序运行,手指在屏幕上从左往右或者从右往左滑动超过一定距离,就会吐司输出滑动方向和距离。
1.activity_main.xml页面放置一个ImageView控件。
activity_main.xml页面:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/ivShow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
2.MainActivity.java页面实现滑动方法。
MainActivity.java页面:
package com.example.gesturedetector;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private ImageView ivShow;
private GestureDetector gestureDetector;
class myGestureListener extends SimpleOnGestureListener{
@Override
/*识别滑动,第一个参数为刚开始事件,第二个参数为结束事件*/
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
if(e1.getX()-e2.getX()>50){
Toast.makeText(MainActivity.this,"从右往左滑动"+(e1.getX()-e2.getX()),Toast.LENGTH_LONG).show();
}else if(e2.getX()-e1.getX()>50){
Toast.makeText(MainActivity.this,"从左往右滑动"+(e2.getX()-e1.getX()),Toast.LENGTH_LONG).show();
}
return super.onFling(e1, e2, velocityX, velocityY);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gestureDetector=new GestureDetector(MainActivity.this,new myGestureListener());
ivShow=(ImageView) findViewById(R.id.ivShow);
ivShow.setLongClickable(true); //view必须设置为true,否则手势识别无法正确工作
ivShow.setOnTouchListener(new OnTouchListener() {
/*可以捕获到触摸屏幕发生的Event事件*/
@Override
public boolean onTouch(View arg0, MotionEvent event) {
gestureDetector.onTouchEvent(event);//转发
return false;
}
});
}
}
3.程序较简单,运行就可以显示目标效果了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- Android GestureDetector用户手势检测实例讲解
- android使用gesturedetector手势识别示例分享
- Android GestureDetector手势滑动使用实例讲解
- Android手势识别器GestureDetector使用详解
- Android自定义viewgroup可滚动布局 GestureDetector手势监听(5)
- Android自定义GestureDetector实现手势ImageView
- Android编程使用GestureDetector实现简单手势监听与处理的方法
- Android触摸及手势操作GestureDetector
- Android使用手势监听器GestureDetector遇到的不响应问题
- Android如何使用GestureDetector进行手势检测详解
相关文章
基于android示例程序(bitmapfun) 高效加载图片让人无语地方
尝试了使用git上的一个开源项目afinal(bitmapfun的封装版)来加载图片,但是在测试的时候发现了一个问题,新的图片加载器(bitmapfun)比之前用的ImageDownloader要慢很多,特别是在网络状况不好的时候,那简直是太让人无语了2013-04-04
Android中Fragment与Activity的生命周期对比
这篇文章主要介绍了Android中Fragment与Activity的生命周期对比,Fragment是在Activity的基础之上进行设计的,比Activity多出几个控制生命周期的回调函数,需要的朋友可以参考下2016-02-02
Android自定义viewgroup 使用adapter适配数据(6)
这篇文章主要为大家详细介绍了Android自定义viewgroup,使用adapter适配数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-12-12


最新评论