Android实现手势滑动和简单动画效果

Android实现手势滑动和简单动画效果,第1张

概述一、手势滑动1.Activity都具有响应触摸事件,也就是说只要触摸Activity,他都会回调一个onTouchEvent()方法。但是在这个方法里无法处理事件,需要配合使用手势识别器(GestureDetector)中的方法onTouchEvent对事件(e

一、手势滑动

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,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;      }          });

注:页面坐标

二、简单动画

目的:用XML文件写一个Activity跳转页面的过渡动画。

1. 在res目录下新建anim文件夹,创建两个xml文件并编辑动画动作,一个是进入动作,另一个退出动作。

(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();//关闭当前界面  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android实现手势滑动和简单动画效果全部内容,希望文章能够帮你解决Android实现手势滑动和简单动画效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存