封裝的android監(jiān)聽手指左右滑動(dòng)屏幕的事件類分享
左右滑動(dòng)是智能手機(jī)最常用的動(dòng)作,在此簡單的封裝了一下,以后直接拿來用就可以了。
簡單的只需要幾行就可以了,下面那個(gè)類是封裝好了的。
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)聽左右滑動(dòng)事件的view RelativeLayout view = (RelativeLayout) this.findViewById(R.id.layout); //setLongClickable是必須的 view.setLongClickable(true); view.setOnTouchListener(new MyGestureListener(this)); } /** * 繼承GestureListener,重寫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)聽左右滑動(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)用的方法,子類應(yīng)該重寫 * @return */ public boolean left() { return false; } /** * 向右滑的時(shí)候調(diào)用的方法,子類應(yīng)該重寫 * @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è)類,需要的朋友可以參考下2016-11-11Android中使用ShareSDK集成分享功能的實(shí)例代碼
下面小編就為大家分享一篇Android中使用ShareSDK集成分享功能的實(shí)例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01Android開發(fā)在RecyclerView上面實(shí)現(xiàn)"拖放"和"滑動(dòng)刪除"-2
這篇文章主要介紹了Android開發(fā)在RecyclerView上面實(shí)現(xiàn)"拖放"和"滑動(dòng)刪除"(二)功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03ScrollView滾動(dòng)條顏色的設(shè)置方法
ScrollView滾動(dòng)條顏色的設(shè)置方法,需要的朋友可以參考一下2013-06-06Android apk完整性檢測的實(shí)現(xiàn)思路和代碼實(shí)現(xiàn)
這篇文章主要介紹了Android apk完整性檢測的實(shí)現(xiàn)思路和代碼實(shí)現(xiàn),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12Flutter?App開發(fā)實(shí)現(xiàn)循環(huán)語句的方式實(shí)例
這篇文章主要為大家介紹了Flutter?App開發(fā)實(shí)現(xiàn)循環(huán)語句的方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05