前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Android程序中,该怎么做图片渐变与旋转动画?

在Android程序中,该怎么做图片渐变与旋转动画?

原创
作者头像
用户8639654
修改2021-07-16 10:42:03
1.4K0
修改2021-07-16 10:42:03
举报
文章被收录于专栏:云计算运维

当我们打开一个Android程序时,映入眼帘的就是一个欢迎界面,这个欢迎界面可以通过一个透明渐变动画让该界面展示的更加生动形象。除了欢迎界面之外,Android程序中的引导页面也可以通过透明渐变动画实现比较吸引用户的动画效果。当我们在手机上用网易音乐软件播放音乐时,当时的播放界面界面中间的一个圆形图片是一直旋转的动画效果,播放界面如下图这样。

欢迎界面的透明渐变动画和网易音乐播放界面中的圆形图片的旋转动画是如何实现的呢?

其实在Android系统为我们提供的补间动画中就包含了透明渐变动画和旋转动画。补间(Tween)动画是对View进行一系列的动画操作来实现动画效果的。

接下来我们就一起开启通往图片的透明渐变动画与旋转动画的学习旅程吧!

1.透明度渐变动画

透明度渐变动画主要通过指定动画开始时View的透明度、结束时View的透明度以及动画持续时间来实现的,在XML文件中定义透明度渐变动画的具体代码如下方文件中这样。

代码语言:javascript
复制
1	<?xml version="1.0" encoding="utf-8"?>
 2	<set xmlns:android="http://schemas.android.com/apk/res/android">
 3	    <alpha
 4	        android:interpolator="@android:anim/linear_interpolator"
 5	        android:repeatMode="reverse"
 6	        android:repeatCount="infinite"
 7	        android:duration="1000"
 8	        android:fromAlpha="1.0"
 9	        android:toAlpha="0.0"/>
 10	</set>

上述代码中定义了一个透明度渐变动画,这个动画效果可以使View从完全不透明到透明,动画持续时间为1秒,并且该动画可以反向无限循环。上述代码中的属性介绍如下:

  • android:interpolator:用于控制动画的变化速度,可设置的值有@android:anim/linear_interpolator(匀速改变)、@android:anim/accelerate_interpolator(开始慢,后来加速)等。
  • android:repeatMode:用于指定动画重复的方式,可设置的值有reverse(反向)、restart(重新开始)。
  • android:repeatCount:用于指定动画重复次数,该属性的值可以为正整数,也可以为infinite(无限循环)。
  • android:duration:用于指定动画播放时长。
  • android:fromAlpha:用于指定动画开始时View的透明度,0.0为完全透明,1.0为不透明。
  • android:toAlpha:用于指定动画结束时View的透明度,0.0为完全透明,1.0为不透明。

上述属性中的android:interpolator、android:repeatMode、android:repeatCount和android:duration属性在其他补间(Tween)动画中也可以使用,下面不再单独进行介绍。

2.旋转动画

旋转动画是通过对View指定动画开始时的旋转角度、结束时的旋转角度以及动画播放时长来实现的,在XML文件中定义旋转动画的具体代码如下面文件中这样。

代码语言:javascript
复制
1	<?xml version="1.0" encoding="utf-8"?>
 2	<set xmlns:android="http://schemas.android.com/apk/res/android">
 3	    <rotate
 4	        android:fromDegrees="0"
 5	        android:toDegrees="360"
 6	        android:pivotX="50%"
 7	        android:pivotY="50%"
 8	        android:repeatMode="reverse"
 9	        android:repeatCount="infinite"
 10	        android:duration="1000"/>
 11	</set>

上述代码中定义了一个旋转动画,旋转的角度从0°到360°,动画的持续时间为1秒,并且该动画可以反向无限循环。上述代码中的属性介绍如下:

  • android:fromDegrees:指定View在动画开始时的角度。
  • android:toDegrees:指定View在动画结束时的角度。
  • android:pivotX:指定旋转点的X坐标。
  • android:pivotY:指定旋转点的Y坐标。

需要注意的是,属性android:pivotX与android:pivotY的值可以是整数、百分数(小数)、百分数p(字母p表示parent),例如50、50%、50%p。以属性android:pivotX为例,当属性值为50时,表示在当前View左上角的X轴坐标加上50px的位置作为旋转点的X轴坐标;当属性值为50%时,表示在当前View左上角的X轴坐标加上View自己宽度的50%作为旋转点的X轴坐标;当属性值为50%p时,表示在当前View左上角的X轴坐标加上父控件宽度的50%作为旋转点的X轴坐标。

通过本篇文章,希望大家能够掌握如何在Android程序中实现图片的透明渐变动画和旋转动画。Android系统中的补间动画除了有透明渐变动画和旋转动画,还有缩放动画(ScaleAnimation)、平移动画(TranslateAnimation),缩放动画和平移动画会在下一篇文章中给大家介绍,希望提供的这些文章可以对读者有帮助。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.透明度渐变动画
  • 2.旋转动画
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档