Android动画 —— Activity过渡

学如逆水行舟,不进则退。

接触Android开发虽已经颇有时日,但感觉相关知识总停留于一知半解,或者又缺乏系统关联导致顾此而失彼。是时候总结一下了。

那就从常常开发过程中经常遇到的Android动画开始吧。

Material设计为Android增加了一种动画称为Activity过渡(Activity Transitions),旨在提供不同状态下共有元素的视觉连接。官方文档的描述,听起来拗口,读起来也不够顺畅。Activity过渡在我接触的项目中没有遇到过,今天就以它初试牛刀,既是学习,也是巩固。

类别

Activity的过渡动画总共可以分为三类:

  • 进入过渡Enter transition):定义Activity中的view如何进入界面
  • 退出过渡Exit transition):定义Activity中的view如何退出界面
  • 共享元素过渡Shared elements transition): 如果两个Activity包含了若干“共享元素”(可以理解为相同的元素控件,至少,看起来是如此),那么共享元素过渡动画,就是将这些共享元素从一个Activity优雅地过渡到另一个Activity

任何继承了Visibility类的过渡,都可以作为进入或者退出过渡。目前,Android默认支持的进入/退出过渡如下表。

过渡 说明
explode 移动view进入/退出界面中央
slide 从界面的某一条边移入/移出view
fade 通过改变透明度来展现view的添加和移出

Android默认支持的共享元素过渡如下表。

过渡 说明
changeBounds 过渡view的layout bound变化
changeClipBounds 过渡view的clip bound变化
changeTransform 过渡view的scale和rotation的变化
changeImageTransform 过渡image的尺寸和放缩比例变化

过渡动画

进入/退出过渡

首先,开启过渡动画需要在style中将windowActivityTransitions属性设置为true

<item name="android:windowActivityTransitions">true</item>

或者,也可以在代码中调用方法来设置

getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

前面已经说过,进入、退出过渡,是指Activity中的view元素,在Activity界面显示时的动画过渡。下面,我们使用默认的Explode过渡来举个例子。

(1) SecondActivity

定义SecondActivity,用于显示进入和退出过渡,界面为一个TextView和四个定位View(用处后面会说),代码如下

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值