日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

滑动切换activity

發布時間:2025/3/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 滑动切换activity 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、效果

手在屏幕上劃過一段距離,切換頁面。

二、原理

2.1手在屏幕上出發 onTouch事件

2.2在onTouch事件中完成滑動邏輯處理

? ?2.2.1 判斷劃過的x軸距離,如果大于多少,則startActivtiy

? ?2.2.2 判斷劃過的y軸距離,如果大于多少,則不換頁

? ?2.2.3判斷劃過的速度,如果過慢,則不換頁







3、手在屏幕上移動是很復雜的過程,谷歌提供了手勢識別器工具類。

android.view.GestureDetector.SimpleOnGestureListener

在這個類里實現2的步驟。


三、代碼

package com.zengmg.MobileSafe.activity.phoneguard;import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.MotionEvent; import android.view.View; import android.widget.Toast;/*** 設置頁面基類 該activity不需要在清單文件里配置,因為不需要顯示在屏幕上* * @author zengmg* */ public abstract class SetupBaseActivity extends Activity {public SharedPreferences mPref;// 手勢識別器private GestureDetector mDetector;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mPref = getSharedPreferences("config", MODE_PRIVATE);mDetector = new GestureDetector(this, new SimpleOnGestureListener() {// Fling:猛撲; 猛沖; 急伸。相當于突然劃一下@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2,float velocityX, float velocityY) {// 向左滑動,下一頁if (e1.getRawX() - e2.getRawX() > 120) {showNextPage();return true;}// 向右滑動,上一頁else if (e2.getRawX() - e1.getRawX() > 120) {showPreviousPage();return true;}// 滑動速度慢,不換頁if (Math.abs(velocityX) < 30) {Toast.makeText(SetupBaseActivity.this, "滑動太慢了哦!",Toast.LENGTH_SHORT).show();return true;}// Y方向滑動范圍過大,不換頁if (Math.abs(e1.getRawY() - e2.getRawY()) > 120) {Toast.makeText(SetupBaseActivity.this, "Y軸滑太大了哦!",Toast.LENGTH_SHORT).show();return true;}return super.onFling(e1, e2, velocityX, velocityY);}});}@Overridepublic boolean onTouchEvent(MotionEvent event) {mDetector.onTouchEvent(event);//把觸摸事件委托給手勢識別器來執行return super.onTouchEvent(event);}/*** 顯示下一個頁面*/public abstract void showNextPage();/*** 顯示上一個頁面*/public abstract void showPreviousPage();// 下一頁public void next(View view) {showNextPage();}// 上一頁public void previous(View view) {showPreviousPage();}}


總結

以上是生活随笔為你收集整理的滑动切换activity的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。