国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現手勢滑動和簡單動畫效果

2019-10-23 18:29:01
字體:
來源:轉載
供稿:網友

一、手勢滑動

1.Activity都具有響應觸摸事件,也就是說只要觸摸Activity,他都會回調一個onTouchEvent()方法。但是在這個方法里無法處理事件,需要配合使用手勢識別器(GestureDetector)中的方法onTouchEvent對事件(event)進行分析處理,我們只需要重寫這個方法中的操作來達到我們的需求。

   /**   * activity被觸摸后,會回調此方法onTouchEvent,并回傳一個event對象   * event對象封裝了觸摸時的動作信息,包括x、y坐標等等信息    */   @Override  public boolean onTouchEvent(MotionEvent event) {    // TODO Auto-generated method stub    boolean onTouchEvent = gestureDetector.onTouchEvent(event);    //如果這個方法消費了這個這個event事件,就返回True,否則false。    return super.onTouchEvent(event);  }

2.我們需要根據滑動手勢做界面跳轉,GestureDetector封裝了可以監聽不同手勢的方法。這個方法在哪個Activity中使用,這個Activity就能監聽這個Activity接收的動作,在這些方法里可以重寫需要的動作。

  GestureDetector gestureDetector = new GestureDetector(this, new OnGestureListener(){      @Override      public boolean onDown(MotionEvent e) {        // 按下        return false;      }      @Override      public void onShowPress(MotionEvent e) {        // TODO Auto-generated method stub             }      @Override      public boolean onSingleTapUp(MotionEvent e) {        // 點擊        return false;      }      @Override      public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {        // 滑動        return false;      }      @Override      public void onLongPress(MotionEvent e) {        // 長按              }      /**      *滑動, e1為起點坐標,e2為終點坐標      *在這里消費掉event事件,重寫其中的方法以達到需求。      /      @Override      public boolean onFling(MotionEvent e1, MotionEvent e2,float velocityX, float velocityY) {       if(e1.getRawX()-e2.getRawX()>200){          flingnextpage(); //向左滑(與滑動動畫配合效果較好)        }else if(e2.getRawX()-e1.getRawX()>200){          flingpreviouspage();//向右滑          }        if(Math.abs(e1.getRawY()-e2.getRawY())>200){        System.out.println("不能斜著滑動");        return true;//true表示我們消費了這個觸摸事件          }        if(Math.abs(velocityX)<150 ||Math.abs(velocityY)<100){        System.out.println("滑動的太慢了,請滑快點");        return true;          }              return true;      }          });

注:頁面坐標

Android,手勢滑動

二、簡單動畫

目的:用XML文件寫一個Activity跳轉頁面的過渡動畫。

1. 在res目錄下新建anim文件夾,創建兩個xml文件并編輯動畫動作,一個是進入動作,另一個退出動作。

Android,手勢滑動

(1)在anim_next_in.xml中寫好進入動作。

<?xml version="1.0" encoding="utf-8"?><translate  android:fromXDelta="100%p" <!—當前界面的右側界面,從右側滑入當前界面-->  android:toXDelta="0"  android:duration="100" <!--移動時間-->   xmlns:android="http://schemas.android.com/apk/res/android"></translate>

(2)在anim_next_out.xml中寫好退出動作。

<?xml version="1.0" encoding="utf-8"?><translate  android:fromXDelta="0" <!—當前界面向左滑出-->  android:toXDelta="-100%p"  android:duration="100"   xmlns:android="http://schemas.android.com/apk/res/android"></translate>

2.調用Activity的overridePendingTransition方法,來實現平移動畫。

/*** overridePendingTransition(int enterAnim, int exitAnim)* enterAnim為進入當前界面的動畫資源ID, exitAnim為退出當前界面的動畫資源ID/@Overridepublic void flingnextpage() {  // TODO Auto-generated method stub   startActivity(new Intent(this, NewActivity.class));   overridePendingTransition(R.anim.anim_next_in, R.anim.anim_next_out);   finish();//關閉當前界面  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛扎县| 阿拉尔市| 缙云县| 固阳县| 微山县| 岗巴县| 普格县| 高安市| 临清市| 库尔勒市| 农安县| 白河县| 清涧县| 府谷县| 崇阳县| 宿松县| 长顺县| 绥宁县| 景德镇市| 邹城市| 缙云县| 大理市| 永嘉县| 天全县| 沧州市| 建平县| 吉安县| 宝坻区| 元江| 右玉县| 即墨市| 蛟河市| 嘉义县| 拉孜县| 闽侯县| 库车县| 灵璧县| 襄樊市| 朝阳区| 方城县| 名山县|