Android-补间动画效果
Android的SDK提供了三种类型的动画,分别是补间动画、逐帧动画和插值属性动画。下面先介绍第一种动画效果-补间动画。
补间动画可以应用于View,让开发者可以定义一些关于大小、位置、旋转和透明度的改变效果,达到让View的内容动起来的效果。
补间动画是使用Animation类创建的,它有4个直接子类,分别实现不同的动画效果,分别为:
| AlphaAnimation | 渐变透明度动画效果,即淡入淡出效果 |
| ScaleAnimation | 渐变尺寸伸缩动画效果,即缩放效果 |
| TranslateAnimation | 画面转换位置移动动画效果,移动效果 |
| RotateAnimation | 画面转移旋转动画效果,即旋转效果 |
要使用补间动画的效果,有两种方法,第一种是在XML文件中设置动画效果;第二种是在Java代码中设置。下面分别介绍这两种方法:
1.在XML文件中设置方式:
在Android项目的res目录下新建anim文件夹,然后在anim文件夹下新建firstanim.xml,添加动画效果的配置代码,示例代码如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="3000"
/>
<!-- 透明度控制动画效果 alpha fromAlpha 为动画起始时透明度
toAlpha 为动画结束时透明度
取值说明: 0.0表示完全透明,1.0表示完全不透明,以上值取0.0-1.0之间的float数据类型的数字 duration 为动画持续时间,时间以毫秒为单位
--> <scale
android:interpolator=
"@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="0.0"
android:toXScale="1.4"
android:fromYScale="0.0"
android:toYScale="1.4"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="700" /> <!-- 尺寸伸缩动画效果 scale
interpolator 指定一个动画的插入器
几种简单的动画插入器:
accelerate_decelerate_interpolator 先加速后减速,开始结束时慢,中间加速
accelerate_interpolator 加速,开始时慢中间加速
decelerate_interpolator 减速,开始时快然后减速
LinearInterpolator 线性,线性均匀改变 fromXScale 为动画起始时 X坐标上的伸缩尺寸
toXScale 为动画结束时 X坐标上的伸缩尺寸 fromYScale 为动画起始时Y坐标上的伸缩尺寸
toYScale 为动画结束时Y坐标上的伸缩尺寸
以上四种属性值说明: 0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大 pivotX 为动画相对于物件的X坐标的开始位置
pivotY 为动画相对于物件的Y坐标的开始位置
以上两个属性值 从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置 duration 为动画持续时间,时间以毫秒为单位 fillAfter 当设置为true ,控件停放在动画结束的位置
--> <translate
android:fromXDelta="30"
android:toXDelta="-80"
android:fromYDelta="30"
android:toYDelta="300"
android:duration="2000"
/>
<!-- translate 位置转移动画效果 fromXDelta 为动画起始时 X坐标上的位置
toXDelta 为动画结束时 X坐标上的位置
fromYDelta 为动画起始时 Y坐标上的位置
toYDelta 为动画结束时 Y坐标上的位置
没有指定fromXType toXType fromYType toYType 时候,默认是以自己为相对参照物 duration 动画持续时间,时间以毫秒为单位
--> <rotate
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="+350"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000" />
<!-- rotate 旋转动画效果
interpolator 指定一个动画的插入器
fromDegrees 为动画起始时控件的角度
toDegrees 为动画结束时物件旋转的角度 可以大于360度
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转) pivotX 为动画相对于物件的X坐标的开始位置
pivotY 为动画相对于物件的Y坐标的开始位置
以上两个属性值 从0%-100%中取值
duration 为动画持续时间,时间以毫秒为单位
-->
</set>
在Activity中的onCreate()方法中,获取在XML中配置的动画效果,代码如下:
Animation animation= AnimationUtils.loadAnimation(this,R.anim.firstanim);
如果这个动画效果使用在一个ImageView上,可以参考如下代码:
imageView.startAnimation(animation);
2.在Java代码中设置方式:
以AlphaAnimation为例,
//首先声明Animation的一个对象
private Animation alpha; //在Activity的onCreate()方法中实例化这个对象
alpha=new AlphaAnimation(0.1f, 1.0f); //设置动画持续时间为3秒 alpha.setDuration(3000);
如果这个动画效果使用在一个ImageView上,可以参考如下代码:
imageView.startAnimation(alpha);
Android-补间动画效果的更多相关文章
- android 补间动画和Animation
介绍: 补间动画是一种设定动画开始状态.结束状态,其中间的变化由系统计算补充.这也是他叫做补间动画的原因. 补间动画由Animation类来实现具体效果,包括平移(TranslateAnimation ...
- android 补间动画
android开发过程中,为了更好的展示应用程序,应用程序添加动画,能够很好地实现这个功能.如果动画中的图像变化有一定的规律,可以采用自动生成图像的方式来生成动画,例如图像的移动.旋转.缩放等.自动生 ...
- Android补间动画笔记
布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...
- (原)android补间动画(四)之插补器Interpolator
比如说一段旋转动画 RotateAnimation animation = new RotateAnimation(0, 360, mMoveCircle.getMeasuredWidth() / 2 ...
- ListView的淡入淡出和Activity的淡入淡出补间动画效果Animation
//=========主页面======================= package com.bw.lianxi7; import android.os.Bundle;import androi ...
- Android补间动画、帧动画和属性动画使用知识介绍
https://blog.csdn.net/zhangqunshuai/article/details/81098062
- Android开发(26)--补间动画(Tween)的实现
补间动画(Tween Animation) 补间动画与逐帧动画在本质上是不同的,逐帧动画通过连续播放图片来模拟动画的效果,而补间动画则是通过在两个关键帧之间补充渐变的动画效果来实现的.补间动画的优点是 ...
- View动画(补间动画)
补间动画的属性 Animation的属性 JAVA方法 XML属性 解释 setDetachWallpaper(boolean) android:detachWallpaper 是否在壁纸上运行 se ...
- Android动画效果之Tween Animation(补间动画)
前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation ...
- Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果
如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 某天看到京东商城首页的滑动广告的Banner,在流动切换的时候有立体的动画效果,感觉很有意思,然后研究了下 ...
随机推荐
- RedHat7上安装MariaDB
编译安装MariaDB 下载MariaDB# wget http://mirrors.opencas.cn/mariadb//mariadb-10.1.8/source/mariadb-10.1.8. ...
- HDU-1113(map的运用)
Word Amalgamation Problem Description In millions of newspapers across the United States there is a ...
- [C# 基础知识系列]专题四:事件揭秘
转自http://www.cnblogs.com/zhili/archive/2012/10/27/Event.html 引言: 前面几个专题对委托进行了详细的介绍的,然后我们在编写代码过程中经常会听 ...
- C#中堆和栈的区别分析(有待更新总结)
转载:http://blog.csdn.net/zevin/article/details/5721495 一.预备知识-程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1.栈区 ...
- android下面res目录
1. 相关文件夹介绍 在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的.assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件 ...
- StarUML启动时候出现"System Error. Code:1722. RPC服务器不可用."错误的解决办法
StarUML是用得很顺手的UML工具,但是启动时候每次都会出现"System Error. Code:1722. RPC服务器不可用."错误. 一般来说这个应该是某个Window ...
- 使用微软企业库5.0提供的unity配置解藕系统demo(源码)
最近公司集50多号开发人员的人力围绕一个系统做开发,框架是免不了要统一的,公司提供的架构,利于分工合作,便于维护,扩展,升级,其中使用了到微软的企业库来解藕系统,只是因为框架封装,于是在网上学习了一个 ...
- CI 笔记 easyui 结合后,左侧导航跳转问题
1. 在进行时,还没有做完整个项目时,可能不是最终稿 2. 从数据库中nav表中,读出url地址,然后,从admin中,重写这些url跳转 3. 在admin的控制器中,跳转写的并不完美, publi ...
- redis【摘自网上,只为以后查看】
ubuntu安装启动redis 1.下载安装 cd /tmp wget http://redis.googlecode.com/files/redis-2.2.13.tar.gz tar -zxf r ...
- 转 C#开发微信门户及应用(1)--开始使用微信接口
微信应用如火如荼,很多公司都希望搭上信息快车,这个是一个商机,也是一个技术的方向,因此,有空研究下.学习下微信的相关开发,也就成为日常计划的重要事情之一了.本系列文章希望从一个循序渐进的角度上,全面介 ...