Android通過滑動實現Activity跳轉(手勢識別器應用)
通過手勢識別器實現界面的轉跳,具體內容如下
1、創(chuàng)建 GestureDetector對象
2、創(chuàng)建新類繼承SimpleOnGestureListener類(創(chuàng)建 GestureDetecto需要的參數)
3、重寫SimpleOnGestureListener中的OnFling()方法。(滑動手勢監(jiān)聽)
4、重寫界面的OntouchEvent方法
5、通過 GestureDetector對象的onTouchEvent()添加事件
代碼如下:
public abstract class BaseActivity extends AppCompatActivity { private GestureDetector gue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_base); //這里的第一個參數是上下文,第二個是手勢監(jiān)聽器 gue = new GestureDetector(this, new MyGestureListener()); } class MyGestureListener extends GestureDetector.SimpleOnGestureListener { //onFling方法的第一個參數是 手指按下的位置, 第二個參數是 手指松開的位置,第三個參數是手指的速度 @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { float startX = e1.getX();//通過e1.getX()獲得手指按下位置的橫坐標 float endX = e2.getX();//通過e2.getX()獲得手指松開位置的橫坐標 float startY = e1.getY();//通過e1.getY()獲得手指按下位置的縱坐標 float endY = e2.getY();//通過e2.getY()獲得手指松開的縱坐標 if ((startX - endX) > 50 && Math.abs(startY - endY) < 200) { //(startX - endX) > 50 是手指從按下到松開的橫坐標距離大于50 // Math.abs(startY - endY) < 200 是手指從按下到松開的縱坐標的差的絕對值 //在這里通過Intent實現界面轉跳 } if ((endX - startX) > 50 && Math.abs(startY - endY) <200) { //在這里通過Intent實現界面轉跳 } //返回值是重點:如果返回值是true則動作可以執(zhí)行,如果是flase動作將無法執(zhí)行 return true; } } @Override public boolean onTouchEvent(MotionEvent event) { gue.onTouchEvent(event); return super.onTouchEvent(event); }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android 中使用 ViewPager實現屏幕頁面切換和頁面輪播效果
ViewPager是谷歌官方給我們提供的一個兼容低版本安卓設備的軟件包,里面包囊了只有在安卓3.0以上可以使用的api。下面我們就展示下ViewPager可以實現的兩種簡單效果,感興趣的朋友一起看看吧2016-12-12Flutter?Android多窗口方案落地實戰(zhàn)
這篇文章主要為大家介紹了Flutter?Android多窗口方案落地實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02Android程序開發(fā)之自定義設置TabHost,TabWidget樣式
這篇文章主要介紹了Android程序開發(fā)之自定義設置TabHost,TabWidget樣式的相關資料,需要的朋友可以參考下2016-03-03