专栏首页水击三千android 补间动画

android 补间动画

android开发过程中,为了更好的展示应用程序,应用程序添加动画,能够很好地实现这个功能。如果动画中的图像变化有一定的规律,可以采用自动生成图像的方式来生成动画,例如图像的移动、旋转、缩放等。自动生成中间图像的动画,补间动画,只需指定第一帧和最后一帧。

补间动画的优点是节省硬盘空间,缺点是,无法生成复杂的动画。本文主要介绍经常用到的四种补间动画:移动、缩放、旋转、透明度。

1.移动补间动画

移动是比较常见的动画效果。通过xml文件或者java代码能够实现补间动画的移动效果。在res/anim,文件中新建test_translate.xml文件。

1 <?xml version="1.0" encoding="utf-8"?>
2 <set xmlns:android="http://schemas.android.com/apk/res/android">
3     <translate xmlns:android="http://schemas.android.com/apk/res/android"  
4     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
5     android:fromXDelta="0" android:toXDelta="320" android:fromYDelta="0" android:toYDelta="0" >
6         
7     </translate>
8 
9 </set>

 android:interpolator:表示动画渲染器。可以设置3个动画渲染器:accelerate_decelerate_interpolator(动画加速减速器),先加速,再减速;accelerate_interpolator(动画加速器),动画开始时比较慢,逐渐加速;decelerate_interpolator(动画减速器):动画开始时最快,逐渐减速。

android:fromXDelta:动画起点位置的横坐标;

android:fromYDelta:动画起点位置的纵坐标;

android:toXDelta:动画终点位置的横坐标;

android:toYDelta:动画终点位置的纵坐标。

android:duration:动画的持续时间,单位是毫秒。动画在指定的时间内,从起点移动到终点。

补间动画通过AnimationUtils.loadAnimation(this,int resid)来装载补间动画,setAnimation为控件绑定动画,animation.start(),启动动画,animation.setRepeatCount(Animation.INFINITE);循环显示动画。

补间动画的三个状态:动画开始、动画结束、动画循环。监听状态的接口AnimationListener,3个方法为:onAnimationStart、onAnimationEnd、onAnimationRepeat。

2.缩放补间动画

通过<scale>标签定义缩放补间动画。

1     <scale
2         android:interpolator="@android:anim/accelerate_interpolator"
3         android:fromXScale="1.0"
4         android:fromYScale="0.0"
5         android:toXScale="0.0"
6         android:toYScale="1.0"
7         android:duration="400">
8         
9     </scale>

该段代码实现数据从上往下的展开。

 android:fromXScale:表示沿X轴缩放的起始比例。

 android:fromYScale:表示沿Y轴缩放的起始比例。

 android:toXScale:表示沿x轴缩放的结束比例

 android:toYScale:表示沿y轴缩放的结束比例

 android:pivotX:沿x轴缩放的支点位置

 android:pivotY:沿y轴缩放的支点位置

3.旋转补间动画

通过<roate>标签可以定义旋转补间动画。

1     <rotate  android:interpolator="@android:anim/accelerate_interpolator"
2         android:fromDegrees="0"
3         android:toDegrees="150"
4         android:pivotX="50%"
5         android:pivotY="50%"
6         android:duration="10000"
7         android:repeatMode="restart"
8         android:repeatCount="infinite"/>

android:fromDegrees:旋转的起始角度。

 android:toDegrees:旋转的结束角度

android:repeatCount:设置旋转的次数。该属性需要设置一个整数值,如果为0,则表示不循环。

android:repeatMode:设置重复的模式。restart,表示重新开始循环。reverse,表示偶数次显示动画会与动画文件定义的方向相反。

4.透明度补间动画

通过  <alpha />标签设置透明度补间动画。

1     <alpha android:interpolator="@android:anim/accelerate_interpolator" 
2         android:fromAlpha="1.0" android:toAlpha="0.2" android:duration="2000"/>

 android:fromAlpha:动画的起始透明度

android:toAlpha:动画结束的透明度

属性值在0.0-1.0之间,0.0为完全透明,1.0表示不透明。

android 还有一个振动动画渲染器 cycle_interpolator.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android学习Tabhost、gallery、listview、imageswitcher

    Tabhost控件又称分页控件,在很多的开发语言中都存在。它可以拥有多个标签页,每个标签页可以拥有不同的内容。android中,一个标签页可以放 一个view或...

    水击三千
  • TimePicker控件、帧动画、补间动画

    1.TimePicker控件 最近感觉每个开发平台的控件基本都差不多,在Android中控件的事件和.net控件直接写事件有一定的区别,net事件可以直接界面进...

    水击三千
  • Android学习之sqlite与listview

    在android系统中使用的是sqlite数据库,前面的简易登录系统已经讲述了数据库的应用。本例的重点是实现数据库与listview的绑定。demo的数据是将个...

    水击三千
  • Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐

    项目请在真机(自己的手机)上测试运行,因为我不喜欢用虚拟机。 为了不浪费您的时间,先看一下运行的效果图, 一进去先进行音乐扫描,然后列表展示出来,点击即可播...

    晨曦_LLW
  • 相对布局RelativeLayout(三)

    最新Android开发视频教程(共6章)Android Studio教程(2017-2018) 19 Android 相对布局的使用(视频+笔记,从01开始点...

    李小白是一只喵
  • Android 自定义ListView实现QQ空间界面(说说内包含图片、视频、点赞、评论、转发功能)

    前端时间刚好需要做一个类似于QQ空间的社区分享功能,说说内容包含文字(话题、内容)、视频、图片,还需包含点赞,评论,位置信息等功能。 就采用LIstview做了...

    砸漏
  • Android table布局开发实现简单计算器

    本文实例为大家分享了Android table布局开发实现简单计算器的具体代码,供大家参考,具体内容如下

    砸漏
  • Android学习Tabhost、gallery、listview、imageswitcher

    Tabhost控件又称分页控件,在很多的开发语言中都存在。它可以拥有多个标签页,每个标签页可以拥有不同的内容。android中,一个标签页可以放 一个view或...

    水击三千
  • Android 天气APP(十八)常用城市

    常用城市对于那些经常在外面出差的朋友来说相信是不陌生的,因为涉及到在不同城市之间居住,所以对于其他城市的天气是比较在意的,假如我要去一个城市的话,肯定要先了解天...

    晨曦_LLW
  • Andriod Studio实现保存QQ密码功能(案例代码详解)

    对于QQ登录时保存账号和密码的功能,不仅文件存储能够实现,SharePreferences同样也可以实现,而且SharedPreferences存取数据更加简单...

    砸漏

扫码关注云+社区

领取腾讯云代金券