全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

一、手势滑动

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

注:页面坐标

二、简单动画

目的:用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
/
@Override
public 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仿京东顶部搜索框滑动伸缩动画效果  # Android实现页面滑动切换动画  # Android程序开发之使用Design包实现QQ动画侧滑效果和滑动菜单导航  # Android编程实现ViewPager多页面滑动切换及动画效果的方法  # Android Tween动画之RotateAnimation实现图片不停旋转效果实例介绍  # android实现图片闪烁动画效果的两种实现方式(实用性高)  # Android Glide图片加载(加载监听、加载动画)  # Android图片翻转动画简易实现代码  # Android实现图片点击预览效果(zoom动画)  # Android实现ViewFlipper图片动画滑动  # 重写  # 跳转  # 装了  # 回调  # 写好  # 在这里  # 在这个  # 就能  # 较好  # 只需要  # 按下  # 在这些  # 来实现  # 慢了  # 进行分析  # 大家多多  # 滑出  # 斜着  # 回传  # 也就是说 


相关文章: 湖北网站制作公司有哪些,湖北清能集团官网?  c++怎么用jemalloc c++替换默认内存分配器【性能】  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  建站主机无法访问?如何排查域名与服务器问题  山东网站制作公司有哪些,山东大源集团官网?  相册网站制作软件,图片上的网址怎么复制?  高端云建站费用究竟需要多少预算?  如何配置WinSCP新建站点的密钥验证步骤?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  如何在阿里云虚拟主机上快速搭建个人网站?  h5网站制作工具有哪些,h5页面制作工具有哪些?  如何在万网ECS上快速搭建专属网站?  为什么Go需要go mod文件_Go go mod文件作用说明  如何选择建站程序?包含哪些必备功能与类型?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  c# 在ASP.NET Core中管理和取消后台任务  大连网站制作公司哪家好一点,大连买房网站哪个好?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  如何通过可视化优化提升建站效果?  高端建站三要素:定制模板、企业官网与响应式设计优化  三星网站视频制作教程下载,三星w23网页如何全屏?  Python路径拼接规范_跨平台处理说明【指导】  如何在云主机快速搭建网站站点?  学校建站服务器如何选型才能满足性能需求?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  盐城做公司网站,江苏电子版退休证办理流程?  测试制作网站有哪些,测试性取向的权威测试或者网站?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  如何快速选择适合个人网站的云服务器配置?  大连 网站制作,大连天途有线官网?  网页设计网站制作软件,microsoft office哪个可以创建网页?  临沂网站制作企业,临沂第三中学官方网站?  韩国服务器如何优化跨境访问实现高效连接?  如何用VPS主机快速搭建个人网站?  如何在云主机上快速搭建多站点网站?  教程网站设计制作软件,怎么创建自己的一个网站?  建站主机选哪家性价比最高?  jQuery 常见小例汇总  建站主机如何选?高性价比方案全解析  建站org新手必看:2024最新搭建流程与模板选择技巧  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  家具网站制作软件,家具厂怎么跑业务?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  独立制作一个网站多少钱,建立网站需要花多少钱? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。