Android 动画进阶之动画切换

一、Activity切换动画

  在Android开发中,经常会遇到Activity之间切换效果,下面介绍一下,Activity左右滑动切换效果。在Android2.0以后版本,在Activity中添加了

1 /**
2  * @method
3  * @param -- int enterAnim : Activity在进入屏幕时的动画
4  * @param -- int exitAnim : Activity在退出屏幕时的动画
5  */
6 public void overridePendingTransition(int enterAnim, int exitAnim);

  PS:overridePendingTransition(...)方法必须在startActivity(...)或者finish()方法之后调用。

  在Android中,内置了一些动画效果,可以通过Android.R.anim类使用。一般情况下,都使用自己定义Activity切换的动画效果,下面先了解一下,Activity的位置定义,如下图所示:

                         (此图来自于其它本博文)

  如上图所示,以手机的下边为X轴,手机的左边为Y轴。当X = -100%p时,Activity位置在屏幕左侧位置(如位置1图);当X = 0%p时,Activity位置在屏幕中(如位置2图);当X = 100%p时,Activity位置在屏幕的右侧位置(如位置3图)。而Y轴的Activity位置同理。

  下面代码是两个Activity左右滑动切换效果:

  1. 左出右入滑动效果:

1 startActivityForResult(intent, 11);
2 // 左出右进滑动效果
3 overridePendingTransition(R.anim.slide_right_in, R.anim.slide_left_out);

  slide_right_in.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <set
3   xmlns:android="http://schemas.android.com/apk/res/android">
4     <translate
5         android:duration="800"
6         android:fromXDelta="100.0%p"
7         android:toXDelta="0.0" />
8 </set>

  slide_left_out.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <set
3   xmlns:android="http://schemas.android.com/apk/res/android">
4     <translate
5         android:duration="800"
6         android:fromXDelta="0.0"
7         android:toXDelta="-100.0%p" />
8 </set>

  2. 左进右出滑动效果:

1 finish();
2 // 左进右出滑动效果
3 overridePendingTransition(R.anim.slide_left_in, R.anim.slide_right_out);

  slide_left_in.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <set
3   xmlns:android="http://schemas.android.com/apk/res/android">
4     <translate
5         android:duration="800"
6         android:fromXDelta="-100.0%p"
7         android:toXDelta="0.0" />
8 </set>

  slide_right_out.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <set
3   xmlns:android="http://schemas.android.com/apk/res/android">
4     <translate
5         android:duration="800"
6         android:fromXDelta="0.0"
7         android:toXDelta="100.0%p" />
8 </set>

  

二、动画XML标签

1. Android animation由四种类型动画组成的,分别为:

  • alpha:渐变透明度动画效果;
  • scale:渐变尺寸缩放动画效果;
  • translate:画面转换位置移动动画效果;
  • rotate:画面转移旋转动画效果;

2.标签属性:

  • alpha
    • android:fromAlpha:开始时透明度;
    • android:toAlpha:结束时透明度;
    • androdi:duration:动画持续时间;
  • scale
  • translate
    • android:duration:动画持续时间;
    • android:fromXDelta:元素从某个位置开始动作;
    • android:toXDelta:元素到某个位置停止;
  • rotate
    • fromDegrees:动画开始时角度;
    • toDegrees:动画结束时角度;
    • pivotX:动画相对于元素的X轴坐标的开始位置;
    • pivotY:动画相对于元素的Y轴坐标的开始位置;
时间: 2024-10-16 07:27:00

Android 动画进阶之动画切换的相关文章

Android的Activity屏幕切换动画(一)-左右滑动切换

这段时间一直在忙Android的项目,总算抽出点时间休息一下,准备把一些项目用到的Android经验分享一下. 在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity增加了一个方法: public void overridePendingTransition (int enterAnim, int exitAnim) 其中: enterAnim 定义A

Android学习笔记(25):带动画效果的View切换ViewAnimator及其子类

ViewAnimator可以实现带动画效果的View切换,其派生的子类是一些带动画效果切换功能的组件. ViewAnimator支持的XML属性: Attribute Name Description android:animateFirstView 设置显示第一个View组件时是否使用动画 android:inAnimation 设置显示组件时使用的动画 android:outAnimation 设置隐藏组件时使用的动画 1. ViewSwitcher视图切换组件. 添加视图的方法: 由Vie

Android进阶——属性动画Property Animation详解(一)

引言 前一篇文章Android入门--补间动画和帧动画应用小结总结了补间动画和帧动画及一些相关类的应用,基本可以掌握简单的缩放.旋转.透明度变化.平移的动画效果,但是需要实现更复杂的动画效果时,比如说希望View的切换动画.Layout的切换动画.3D旋转动画等等,这些View Animation都无法做到.此时Property Animation应运而生,这篇主要总结下属性动画的相关知识点. 一.Property Animation属性动画概述 属性动画,在我最先接触到Android 1.5时

Android编程之Fragment动画加载方法源码详解

上次谈到了Fragment动画加载的异常问题,今天再聊聊它的动画加载loadAnimation的实现源代码: Animation loadAnimation(Fragment fragment, int transit, boolean enter, int transitionStyle) { 接下来具体看一下里面的源码部分,我将一部分一部分的讲解,首先是: Animation animObj = fragment.onCreateAnimation(transit, enter, fragm

Android(java)学习笔记198:Android下的帧动画(Drawable Animation)

1.帧动画: 帧动画顾名思义,一帧一帧播放的动画就是帧动画. 帧动画和我们小时候看的动画片的原理是一样的,在相同区域快速切换图片给人们呈现一种视觉的假象感觉像是在播放动画,其实不过是N张图片在一帧一帧的切换罢了. 2.Android如何实现播放帧动画如下: (1)首先我在网上下载了一张gif动态图片,如下: 这是一个gif动态图片,其实它是很多静态图片相同区域快速切换,我们怎么样把这个gif动态图片中的静态图片从中抽离出来? 这里我使用了一个小工具gifsplitter(大家可以百度在网上自行下

android仿微信红包动画、Kotlin综合应用、Xposed模块、炫酷下拉视觉、UC浏览器滑动动画等源码

Android精选源码 仿微信打开红包旋转动画 使用Kotlin编写的Android应用,内容你想象不到 Android手机上的免Root Android系统日志Viewer 一个能让微信 Material Design 化的 Xposed 模块 仿最新版微信 Rxjava+Retrofit+MVP+Glide 技术开发 android一键清理/内存加速,缓存清理,自启管理,软件管理 android打造酷炫下拉视差效果并解决各种滑动冲突源码 android实现UC浏览器首页滑动动画实现 andr

Android开发实战之补间动画和属性动画

说起动画,其实一点也不陌生,在使用一款app的时候为了优化用户体验,多多少少的,都会加入动画. 安卓中的动画,分为两大类:补间动画和属性动画.本篇博文会详细介绍总结这两大动画,希望本篇博文对你的学习和生活有所帮助. **补间动画** 补间动画分为四类:平移动画,旋转动画,缩放动画和渐变动画.这几类动画用法都差不多,只是对象参数不同这里我统一展示出来.以下是效果图: 实现代码很简单: btn1.setOnClickListener(new View.OnClickListener() { @Ove

Android学习之 属性动画&lt;Property Animation&gt;

property 动画系统是相当健壮的框架,它几乎可以动画显示任何对象. 你可以定义一个动画来定时改变任何对象的属性值,不论该对象是否在屏幕上显示. property 动画将以一定的时间间隔修改属性值(对象中的字段值). 要实现动画显示,你须指定对象的相应属性(比如对象的屏幕位置),以及动画时长.动画时间间隔. property 动画系统能让你设定以下动画要素: 1.持续时间:指定动画的持续显示时间.默认的时长是300毫秒. 2.插值因子:指定属性值的变化方式,表示为关于动画已显示时间的函数.

iOS 自定义页面的切换动画与交互动画

在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它.但是随着iOS7的到来,Apple针对开发者推出了新的工具,以更灵活地方式管理UIViewController切换. 自定义导航栏的Push/Pop动画 为了在基于UINavigationController下做自定义的动画切换,先建立一个简单的工程,这个工程的rootViewController是一个