Android 手勢識別 (左右滑動)實現 頁面 切換,android手勢

來源:互聯網
上載者:User

Android 手勢識別 (左右滑動)實現 頁面 切換,android手勢

</pre>要實現 頁面左右滑動的效果  就一定要由手勢辨識器, 就是這個對象 GestureDetector。<p></p><p>用法其實很簡單,這裡 寫一下 方便以後用到的時候好找。</p><p></p><p>步驟就是 這樣子 123.。</p><p> 1. 初始化手勢辨識器  </p><p> 2  註冊 手勢識別的 touch 事件 。</p><p></p><p>就是這麼簡單。僅僅兩步 就能實現識別手勢頁面切換。</p><p></p><p>因為 頁面切換 在每個 activity  中都有  所以 我們 把手勢辨識器 初始化   註冊  放在baseactivity裡面 能夠最有效地 利用我們的代碼。</p><p></p><pre code_snippet_id="673269" snippet_file_name="blog_20150523_2_2749063" name="code" class="java">package com.example.gesturedemo;import android.app.Activity;import android.os.Bundle;import android.view.GestureDetector;import android.view.View;import android.view.MotionEvent;public abstract class BaseActivity extends Activity {private GestureDetector mGestureDetector;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);//1 初始化  手勢辨識器mGestureDetector = new GestureDetector(this,new GestureDetector.SimpleOnGestureListener(){@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {// e1: 第一次按下的位置   e2   當手離開螢幕 時的位置  velocityX  沿x 軸的速度  velocityY: 沿Y軸方向的速度//判斷豎直方向移動的大小if(Math.abs(e1.getRawY() - e2.getRawY())>100){//Toast.makeText(getApplicationContext(), "動作不合法", 0).show();return true;}if(Math.abs(velocityX)<150){//Toast.makeText(getApplicationContext(), "移動的太慢", 0).show();return true;}if((e1.getRawX() - e2.getRawX()) >200){// 表示 向右滑動表示下一頁//顯示下一頁next(null);return true;}if((e2.getRawX() - e1.getRawX()) >200){  //向左滑動 表示 上一頁//顯示上一頁pre(null);return true;//消費掉當前事件  不讓當前事件繼續向下傳遞}return super.onFling(e1, e2, velocityX, velocityY);}});}/** * 下一個頁面 * @param view */public abstract void next(View view);/** * 上一個頁面 * @param view */public abstract void pre(View view);//重寫activity的觸摸事件@Overridepublic boolean onTouchEvent(MotionEvent event) {//2.讓手勢辨識器生效mGestureDetector.onTouchEvent(event);return super.onTouchEvent(event);}}


然後 讓 每個具體的介面 去繼承 這個baseactivity     然後實現相應的 next 或者 pre  方法 即可。 為了 顯示效果 ,我們定義  幾個動畫 效果,左進右出,或者右進左出的。  具體 看 小demo 。




真的很容易(點我下載)



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.