封裝的android監(jiān)聽(tīng)手指左右滑動(dòng)屏幕的事件類(lèi)分享
左右滑動(dòng)是智能手機(jī)最常用的動(dòng)作,在此簡(jiǎn)單的封裝了一下,以后直接拿來(lái)用就可以了。
簡(jiǎn)單的只需要幾行就可以了,下面那個(gè)類(lèi)是封裝好了的。
package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//這里的xml是一個(gè)空白的layout
//需要監(jiān)聽(tīng)左右滑動(dòng)事件的view
RelativeLayout view = (RelativeLayout) this.findViewById(R.id.layout);
//setLongClickable是必須的
view.setLongClickable(true);
view.setOnTouchListener(new MyGestureListener(this));
}
/**
* 繼承GestureListener,重寫(xiě)left和right方法
*/
private class MyGestureListener extends GestureListener {
public MyGestureListener(Context context) {
super(context);
}
@Override
public boolean left() {
Log.e("test", "向左滑");
return super.left();
}
@Override
public boolean right() {
Log.e("test", "向右滑");
return super.right();
}
}
}
package com.example.test;
import android.content.Context;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.GestureDetector;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.MotionEvent;
/**
* 實(shí)現(xiàn)監(jiān)聽(tīng)左右滑動(dòng)的事件,哪個(gè)view需要的時(shí)候直接setOnTouchListener就可以用了
* @author LinZhiquan
*
*/
public class GestureListener extends SimpleOnGestureListener implements OnTouchListener {
/** 左右滑動(dòng)的最短距離 */
private int distance = 100;
/** 左右滑動(dòng)的最大速度 */
private int velocity = 200;
private GestureDetector gestureDetector;
public GestureListener(Context context) {
super();
gestureDetector = new GestureDetector(context, this);
}
/**
* 向左滑的時(shí)候調(diào)用的方法,子類(lèi)應(yīng)該重寫(xiě)
* @return
*/
public boolean left() {
return false;
}
/**
* 向右滑的時(shí)候調(diào)用的方法,子類(lèi)應(yīng)該重寫(xiě)
* @return
*/
public boolean right() {
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
// e1:第1個(gè)ACTION_DOWN MotionEvent
// e2:最后一個(gè)ACTION_MOVE MotionEvent
// velocityX:X軸上的移動(dòng)速度(像素/秒)
// velocityY:Y軸上的移動(dòng)速度(像素/秒)
// 向左滑
if (e1.getX() - e2.getX() > distance
&& Math.abs(velocityX) > velocity) {
left();
}
// 向右滑
if (e2.getX() - e1.getX() > distance
&& Math.abs(velocityX) > velocity) {
right();
}
return false;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
gestureDetector.onTouchEvent(event);
return false;
}
public int getDistance() {
return distance;
}
public void setDistance(int distance) {
this.distance = distance;
}
public int getVelocity() {
return velocity;
}
public void setVelocity(int velocity) {
this.velocity = velocity;
}
public GestureDetector getGestureDetector() {
return gestureDetector;
}
public void setGestureDetector(GestureDetector gestureDetector) {
this.gestureDetector = gestureDetector;
}
}
相關(guān)文章
Android viewpage實(shí)現(xiàn)禁止滑動(dòng)的功能
這篇文章主要介紹了Android viewpage實(shí)現(xiàn)禁止滑動(dòng)的功能的相關(guān)資料,這里附有實(shí)現(xiàn)的實(shí)例代碼,主要還是重新 ViewPage 這個(gè)類(lèi),需要的朋友可以參考下2016-11-11
Android中使用ShareSDK集成分享功能的實(shí)例代碼
下面小編就為大家分享一篇Android中使用ShareSDK集成分享功能的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Android開(kāi)發(fā)在RecyclerView上面實(shí)現(xiàn)"拖放"和"滑動(dòng)刪除"-2
這篇文章主要介紹了Android開(kāi)發(fā)在RecyclerView上面實(shí)現(xiàn)"拖放"和"滑動(dòng)刪除"(二)功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
Android小知識(shí)之OkHttp的2種請(qǐng)求方式詳解
OkHttp可以說(shuō)是如今最為流行的網(wǎng)絡(luò)請(qǐng)求框架之一,下面這篇文章主要給大家介紹了關(guān)于Android小知識(shí)之OkHttp的2種請(qǐng)求方式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-10-10
Android開(kāi)發(fā)之媒體播放工具類(lèi)完整示例
這篇文章主要介紹了Android開(kāi)發(fā)之媒體播放工具類(lèi),結(jié)合完整實(shí)例形式分析了基于MediaPlayer的事件監(jiān)聽(tīng)與多媒體文件播放相關(guān)操作技巧,需要的朋友可以參考下2018-02-02
ScrollView滾動(dòng)條顏色的設(shè)置方法
ScrollView滾動(dòng)條顏色的設(shè)置方法,需要的朋友可以參考一下2013-06-06
Android apk完整性檢測(cè)的實(shí)現(xiàn)思路和代碼實(shí)現(xiàn)
這篇文章主要介紹了Android apk完整性檢測(cè)的實(shí)現(xiàn)思路和代碼實(shí)現(xiàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12
Flutter?App開(kāi)發(fā)實(shí)現(xiàn)循環(huán)語(yǔ)句的方式實(shí)例
這篇文章主要為大家介紹了Flutter?App開(kāi)發(fā)實(shí)現(xiàn)循環(huán)語(yǔ)句的方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05

