分享好友 移动开发首页 频道列表

Android动画----Set

Android开发  2016-12-06 13:000
  • 引言

    讲完了Alpha、Translate、Scale、Rotate动画,这篇博客将讲述他们的组合用法Set,可以让它们四个动画同时发挥作用,让效果变得更加酷炫。

  • Set动画

    set本身没有什么新的属性,它本身是没有特殊的属性,本身也是集成自基类Animation类。

  • Set 属性

    具体说明参照下面的注释,需要注意的有 android:repeatCount属性对set无效,其他属性则会覆盖子动画中的相关属性。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="700"              #动画持续时间,毫秒为单位,set中会覆盖子动画该属性
    android:fillAfter="true"            #动画结束后,保持结束时的状态
    android:fillBefore="true"           #动画结束后,恢复为初始状态
    android:fillEnabled="true"          #效果同上
    android:repeatCount="5"             #此属性无效对于set无效
    android:repeatMode ="reverse"       #重复模式,有reverse和restart两个值,前者为倒序回放,后者为重新开始,set中会覆盖子动画该属性
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" #插值器,后面单独讲
    >
    <alpha
        android:fromAlpha="0.2"
        android:duration="2000"
        android:toAlpha="1.0"/>
    <scale android:fromXScale="0.5"
        android:toXScale="1.5"
        android:fromYScale="0.5"
        android:toYScale="1.5"
        android:pivotX="50%"
        android:duration="5000"
        android:repeatMode="restart"
        android:repeatCount="2"
        android:pivotY="50%"/>
    <rotate

        android:fromDegrees="0"
        android:toDegrees="360"
        android:duration="500"
        android:pivotX="50%"
        android:pivotY="50%"/>
</set>
  • Set xml使用方式

    set的使用方式和其它基本动画一样,基本没什么特别的地方

    第一步,在res文件夹中新建anim文件夹,在anim文件中新建set.xml文件(名称随意),目录结构如下:

    Android动画----Set

    第二步,编写set.xml的内容,如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:repeatMode="reverse"
    android:duration="2000"
    android:fillAfter="true"
    >
    <alpha
        android:repeatCount="5"
        android:fromAlpha="0.2"
        android:toAlpha="1.0"/>
    <scale android:fromXScale="0.5"
        android:toXScale="1.5"
        android:fromYScale="0.5"
        android:toYScale="1.5"
        android:repeatCount="5"
        android:pivotX="50%"
        android:pivotY="50%"/>
    <rotate
        android:repeatCount="5"
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%"/>
</set>

第三步,实例化set动画,示例代码如下:

private Animation setAnimation;
……
setAnimation = AnimationUtils.loadAnimation(AnimDemoActivity.this,R.anim.set);

第四步,执行动画

view.startAnimation(setAnimation);
  • Set 代码使用方式

    第一步,创建Set动画实例,示例代码如下

private AnimationSet mSetAnimation;
……
mSetAnimation = new AnimationSet(this,null);

第二步,设置动画的相关属性:

mSetAnimation.setRepeatMode(Animation.RESTART);
mSetAnimation.setDuration(500);
mSetAnimation.addAnimation(mScaleAnimation);  //添加子动画
mSetAnimation.addAnimation(mAlphaAnimation);
mSetAnimation.addAnimation(mRotateAnimation);
mSetAnimation.addAnimation(mTranslateAnimation);

第三步,执行动画:

view.startAnimation(mSetAnimation);
  • 动画效果

    动画效果基于xml的代码实现,如下:

  • 结尾

    学习完这几篇博客,就可以自己写简单的动画了,后面的博客会继续学习更复杂的动画知识,下篇博客将介绍插值器,本篇博客就到这里,Demo的源码可以 点击这里 下载

查看更多关于【Android开发】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
Supporting Multiple Screens
术语和概念Screen size 屏幕尺寸又称「屏幕大小」,是屏幕对角线的物理尺寸。单位英寸 inch,比如 Samsung Note4 是 5.7 英寸。Resolution 屏幕分辨率屏幕纵横方向上物理像素的总数,比如 Samsung Note4 是 2560x1440,表示纵向有 2560 个像素,横向有 1440

0评论2017-02-05363

Android插件化(4):OpenAtlasの插件的卸载与更新
如果看过我的前两篇博客Android插件化(2):OpenAtlas插件安装过程分析和Android插件化(3):OpenAtlas的插件重建以及使用时安装,就知道在插件的安装过程中OpenAtlas做了哪些事,那么插件的卸载就只需要把持久化和内存中的内容移除即可。1.插件的卸载插件卸载的

0评论2017-02-05229

个人简历
吴朝晖/男/1993.1本科/南京师范大学中北学院信息系工作年限:1年以内技术博客:wuzhaohui026.github.ioGitHub:https://github.com/wuzhaohui026期望职位:Android开发(初级Android工程师)期望薪资:税前月薪5.5k~7k期望城市:常州工作经历常州慧展信息科技有

0评论2017-02-05126

Android插件化(五):OpenAtlasの四大组件的Hack
引言到目前为止,我们已经分析了OpenAtlas中插件的安装,卸载,更新,以及安装好插件之后组件类的加载过程,但是对于这些是如何引发的还不知道,比如,在宿主的一个Activit中调用startActivity()跳转到插件中的一个Activity,如何判断这个Activity在的插件是否

0评论2017-02-0598

更多推荐