前言
- 每一位做Android移动开发的都知道,一般正常项目的Activity数量都是不在少数的,Activity之间的切换也是一个比较频繁的操作
- 为了提高用户体验,为了让Activity之间的切换效果变得更加炫酷,最重要的是为了能方便以后的开发(偷懒),学习一下Android内置的切换动画是必然的
一、普通动画
系统内置过渡动画
动画名称 | 解析 |
---|---|
Slide | 滑动过渡动画 |
Explode | 爆炸过渡动画 |
Fade | 透明度渐变过渡动画 |
属性
- setDuration(long duration)
设置动画持续时间
不过我一般很少去设置持续时间,因为我觉得使用系统默认的持续时间就行了,所以也没必要再去设置了,有些情况例外
使用
- 这里以Slide滑动动过渡画为例,另外的两个过渡动画的用法也是一样的
第一步:设置支持
Transition(过渡动画)
方式一
- 请在主题中添加
<item name="android:windowContentTransitions">true</item>
方式二
- 请写在setContentView之前
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
第二步:加载动画
方式1
- 新建一个xml文件
slide.xml
<?xml version="1.0" encoding="utf-8"?>
<slide
xmlns:android="http://schemas.android.com/apk/res/android"
android:slideEdge="left"/>
- 然后在java代码中加载动画
- 这里使用了TransitionInflater(过渡动画加载器)来加载动画资源,就和我们平时用来加载布局的LayoutInflater差不多
Transition slide = TransitionInflater.from(Context).inflateTransition(R.anim.slide);
方式2
- 直接创建一个Slide对象就行了,相信大家应该都会更喜欢这种方式吧!
Slide slide=new Slide();
slide.setSlideEdge(Gravity.LEFT);
第三步:设置动画
//进入动画
getWindow().setEnterTransition(slide);
//退出动画
getWindow().setExitTransition(slide);
第四步:启动动画
- 现在,我们当前的Activity就已经有了动画效果,但如果你使用原来的Activity切换方式的话你会发现它还是没有任何变化
- 怎么办呢?其实我们只要修改一下启动Activity和销毁Activity的方式就可以了
- 说明一下:ActivityOptionsCompat是v4包下的,使用它的话,我们就不用再去做系统版本判断了
启动activity