Activity的转场动画

   2016-09-11 0
核心提示:2. V4包中的ActivityOptionsCompat和 ActivityCompat2.1. makeCustomAnimation(Context context, int enterResId, int exitResId)热修复的文章仍然在写更新,希望等待热修复的亲们耐心. iphone 7 已经发布了,你会为新的iphone买单么? 我很喜欢苹果,因为它
  1. 2. V4包中的ActivityOptionsCompat和 ActivityCompat
    1. 2.1. makeCustomAnimation(Context context, int enterResId, int exitResId)

热修复的文章仍然在写更新,希望等待热修复的亲们耐心.

iphone 7 已经发布了,你会为新的iphone买单么?

Activity的转场动画

我很喜欢苹果,因为它有很好的交互,虽然自己是个Android开发工程师,不过并不冲突,IOS有很多是Android需要学习的地方。IOS虽然是个封闭的系统,可它给我们用提供更好的交互,更安全的体验,它炫酷,它更人性化。

IOS好的体验我们会返回提友好的交互,是的,用完一次后都觉得它很炫酷,尤其是各种转场动画,其实Android在5.0+上也有很好的交互,若是我们把这些交互用在开发中,你的APP也会有一个很好的用户体验。

Android Design规范中也给出了有意义的转场,使得不同页面之间切换更加平滑、更加流程。就像它自己解释道: 谨慎编排的动画可以在有多步操作的过程中有效地引导用户的注意力;在版面变化或元素重组时避免造成困惑;提高用户体验的整体美感。动画设计不仅应当优美,更应当服务于功能。

所以今天我们就来一步步来介绍Aciticity转场动画的使用。

传统的转场方式

对于Android2.0后加入的对Activity的转场动画 overridePendingTransition(enterAnim, exitAnim) ,能满足我们的一些页面需求,记得当初我们就为每一个页面加上这样的效果更觉得兴奋。

这种实现是针对整个Activity的页面转场使用,如sliding_from_right、sliding_to_left这些动画。

—— sliding_from_right ——

<?xml version="1.0" encoding="utf-8"?>
<translatexmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0"/>

—— sliding_to_left —–

<?xml version="1.0" encoding="utf-8"?>
<translatexmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0"
android:toXDelta="-100%p"/>

要是你真的不了解可以参考 Activity切换效果(overridePendingTransition) 理解下 overridePendingTransition(enterAnim, exitAnim)

V4包中的ActivityOptionsCompat和 ActivityCompat

ActivityOptionsCompat 是v4包下的一个适配类,它的很多静态方法都是返回 ActivityOptions ,通过这些参数我们可以使得Acitity的转场动画更丰富。

如图是我们通过android Studio的类的struct图看到的:

Activity的转场动画

我们就将这些常用的静态方法给列出,这些静态方法像工具类一样可以让我们很方便实用。

  • makeCustomAnimation(Context context, int enterResId, int exitResId)
  • makeScaleUpAnimation(View source,int startX, int startY, int startWidth, int startHeight)
  • makeClipRevealAnimation(View source, int startX, int startY, int width, int height)
  • makeThumbnailScaleUpAnimation(View source, Bitmap thumbnail, int startX, int startY)
  • makeSceneTransitionAnimation(Activity activity, View sharedElement, String sharedElementName)
  • makeSceneTransitionAnimation(Activity activity, Pair … sharedElements)

makeCustomAnimation(Context context, int enterResId, int exitResId)

Create an ActivityOptions specifying a custom animation to run when the activity is displayed.

这个其实和 overridePendingTransition(enterAnim, exitAnim) 有点类似,传入一个页面进入的动画和页面退出的动画,不过这个实用起来可能相对会麻烦点。

假设我们从Activity A–>Activity B,而后再返回Activity A.

视频

具体实现:

———— ActivityA ————

@Override
publicvoidonClick(View v){
 ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeCustomAnimation(this,R.anim.sliding_from_right,R.anim.sliding_to_left);

 ActivityCompat.startActivity(this,newIntent(this,ActivityB.class),optionsCompat.toBundle());
 }

———— ActivityA ————

@Override
publicvoidonClick(View v){
//在finish前执行动画,然后再调用finish
 ActivityCompat.finishAfterTransition(this);

 }

–待续–

 
标签: Activity
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Activity 基本生命周期
    Activity 基本生命周期
    现在讨论activity生命周期的文章已经很多了,但是有时候看得太多反而会觉得思绪很乱。这篇博的目的就是帮助你快速的理清思路,也是自己学习的一些总结。首先什么是Activity? 在很多的书籍里面将其直译为活动。因为像比如service之类的在后台跑着的服务,也可
    12-01 Activity
  • compileSdkVersion为23以下的应用运行在Android
    compileSdkVersion为23以下的应用运行在Android6.0的拍照权限处理[拍照时onActivityResult的data返回为null的处理办法]场景还原我以前开发的一个项目中需要适配到Android6.0,主要是权限的适配,其他权限基本都还能用,就拍照的有问题,能拍照但是没有获取到
    10-17 安卓开发
  • Android 研发安全 1-Activity 组件安全(上)
    Android 研发安全 1-Activity 组件安全(上)
    Activity组件是用户唯一能看见的组件,作为软件所有功能的显示载体,其安全性不言而喻。针对Activity组件安全,作为一个安卓开发者来讲需要在日常开发过程中注意两点:- Activity访问权限的控制- Activity被劫持本篇文章将分享Activity访问权限控制方面的安全
    10-09 安卓开发
  • android 面试—activity
    android 面试—activity
    本篇总结关于activity相关的面试内容。生命周期首先来看一下官网上面的关于activity的生命周期的图。 首先新建两个activity,MainActivity和BActivity,第一个activity可以跳转到BActivity,然后观察它们之间的生命周期的log public class MainActivity exten
    10-09 Activity
  • Activity到底是什么时候显示到屏幕上的呢?
    Activity到底是什么时候显示到屏幕上的呢?
    这两天我的包工头 歪龙木灵魂架构师王半仙Yrom 给我派了一个活:统计App冷启动时间。这个任务看上去不难,但是要求统计出来的时间要 准 ,要 特别准 。 意思就是,我必须要按Activity绘制到屏幕上这个时间节点作为标杆,来进行我的统计工作。毕竟如果是因为视
    10-07 Activity
  • 安卓的Activity跳转
    预计阅读时间: 8 分钟此教程纯属业余,如有言中,不甚荣幸。开发工具android studio,我们创建一个空白安卓应用。实现应用内屏幕间的跳转,以及数据传递;按钮点击事件的处理;主屏幕代码public class MainActivity extends Activity implements View.OnClick
    09-18 Activity
  • Activity - 朱利源的博客 - 博客频道 - CSDN.NET
    Activity - 朱利源的博客 - 博客频道 - CSDN.NE
    本系列主要是读书笔记,知识点百分之90来自 安卓开发艺术探索和安卓群英传,还有百分之10是自己的扩展与理解.欢迎吐槽生命周期 一.正常情况下生命周期如图正常生命周期 开起activity调用onCreate() onStart() onResume(),按下返回键 onPause() onStop() onDestr
    09-12 Activity
  • Android编程实现两个Activity之间共享数据及互
    这篇文章主要介绍了Android编程实现两个Activity之间共享数据及互相访问的方法,简单分析了Android中Activity数据共享与访问的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • Android中Service实时向Activity传递数据实例分析
    Android中Service实时向Activity传递数据实例分
    这篇文章主要介绍了Android中Service实时向Activity传递数据的方法,实例分析了Service组件基于线程操作实现数值实时传递的相关技巧,需要的朋友可以参考下
  • Android实现Activity之间通信的方法
    这篇文章主要介绍了Android实现Activity之间通信的方法,涉及Android中Activity实现数据的发送及接收相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
点击排行