- 浏览: 465301 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
wwwjiandan:
我现在遇到的问题是将Activity设置为非全屏,且andro ...
Android中软键盘弹出时底部菜单上移问题 -
zjhdreams:
求下载链接
Android 9Patch (NinePatch) -
wtjandjay:
受教了 .......
从程序员到项目经理 -
mr_zhang2011:
将博客搬至CSDN -
fyc0109:
为什么我传过去的值, 有的都不对呢, 顺序也是一样的.就是获得 ...
Android Parcelable序列化自定义类集合在Activity间传递
动画类型
Android的animation由四种类型组成
XML中
Android的animation由四种类型组成
XML中
alpha |
渐变透明度动画效果 |
scale |
渐变尺寸伸缩动画效果 |
translate |
画面转换位置移动动画效果 |
rotate |
画面转移旋转动画效果 |
JavaCode中
AlphaAnimation |
渐变透明度动画效果 |
ScaleAnimation |
渐变尺寸伸缩动画效果 |
TranslateAnimation |
画面转换位置移动动画效果 |
RotateAnimation |
画面转移旋转动画效果 |
Android动画模式
Animation主要有两种动画模式:
一种是tweened animation(渐变动画)
XML中 |
JavaCode |
alpha |
AlphaAnimation |
scale |
ScaleAnimation |
一种是frame by frame(画面转换动画)
XML中 |
JavaCode |
translate |
TranslateAnimation |
rotate |
RotateAnimation |
如何在XML文件中定义动画
① 打开Eclipse,新建Android工程
② 在res目录中新建anim文件夹
③ 在anim目录中新建一个myanim.xml(注意文件名小写)
④ 加入XML的动画代码
<?xml version="1.0"
encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha/>
<scale/>
<translate/>
<rotate/>
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha/>
<scale/>
<translate/>
<rotate/>
</set>
Android动画解析--XML
<alpha>
<alpha>
<?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"
/>
<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 属性为动画持续时间
说明:
时间以毫秒为单位
-->
</set>
浮点型值:
fromAlpha 属性为动画起始时透明度
toAlpha 属性为动画结束时透明度
说明:
0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字
长整型值:
duration 属性为动画持续时间
说明:
时间以毫秒为单位
-->
</set>
<scale>
<?xml version="1.0"
encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<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" />
</set>
<!-- 尺寸伸缩动画效果 scale
属性:interpolator 指定一个动画的插入器
在我试验过程中,使用android.res.anim中的资源时候发现
有三种动画插入器:
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
浮点型值:
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 属性为动画持续时间
说明: 时间以毫秒为单位
<set xmlns:android="http://schemas.android.com/apk/res/android">
<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" />
</set>
<!-- 尺寸伸缩动画效果 scale
属性:interpolator 指定一个动画的插入器
在我试验过程中,使用android.res.anim中的资源时候发现
有三种动画插入器:
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
浮点型值:
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 ,该动画转化在动画结束后被应用
-->
fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
-->
<translate>
<?xml version="1.0"
encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<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 属性为动画持续时间
说明: 时间以毫秒为单位
-->
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<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 属性为动画持续时间
说明: 时间以毫秒为单位
-->
</set>
<rotate>
<?xml version="1.0"
encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<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 指定一个动画的插入器
在我试验过程中,使用android.res.anim中的资源时候发现
有三种动画插入器:
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
浮点数型值:
fromDegrees 属性为动画起始时物件的角度
toDegrees 属性为动画结束时物件旋转的角度 可以大于360度
<set xmlns:android="http://schemas.android.com/apk/res/android">
<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 指定一个动画的插入器
在我试验过程中,使用android.res.anim中的资源时候发现
有三种动画插入器:
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
浮点数型值:
fromDegrees 属性为动画起始时物件的角度
toDegrees 属性为动画结束时物件旋转的角度 可以大于360度
说明:
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)
pivotX
属性为动画相对于物件的X坐标的开始位置
pivotY 属性为动画相对于物件的Y坐标的开始位置
说明: 以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置
pivotY 属性为动画相对于物件的Y坐标的开始位置
说明: 以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置
长整型值:
duration 属性为动画持续时间
说明: 时间以毫秒为单位
-->
</set>
duration 属性为动画持续时间
说明: 时间以毫秒为单位
-->
</set>
如何使用XML中的动画效果
public static Animation loadAnimation
(Context context, int id)
//第一个参数Context为程序的上下文
//第二个参数id为动画XML文件的引用
//例子:
myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);
//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件
//第一个参数Context为程序的上下文
//第二个参数id为动画XML文件的引用
//例子:
myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);
//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件
如何在Java代码中定义动画
//在代码中定义 动画实例对象
private Animation myAnimation_Alpha;
private Animation myAnimation_Scale;
private Animation myAnimation_Translate;
private Animation myAnimation_Rotate;
//根据各自的构造方法来初始化一个实例对象
myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
private Animation myAnimation_Alpha;
private Animation myAnimation_Scale;
private Animation myAnimation_Translate;
private Animation myAnimation_Rotate;
//根据各自的构造方法来初始化一个实例对象
myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
myAnimation_Scale =new
ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
myAnimation_Translate=new
TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
myAnimation_Rotate=new
RotateAnimation(0.0f, +350.0f,
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
Android动画解析--JavaCode
AlphaAnimation
① AlphaAnimation类对象定义
AlphaAnimation
① AlphaAnimation类对象定义
private AlphaAnimation
myAnimation_Alpha;
② AlphaAnimation类对象构造
AlphaAnimation(float fromAlpha, float
toAlpha)
//第一个参数fromAlpha为 动画开始时候透明度
//第二个参数toAlpha为 动画结束时候透明度
myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
//说明:
// 0.0表示完全透明
// 1.0表示完全不透明
//第一个参数fromAlpha为 动画开始时候透明度
//第二个参数toAlpha为 动画结束时候透明度
myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
//说明:
// 0.0表示完全透明
// 1.0表示完全不透明
③ 设置动画持续时间
myAnimation_Alpha.setDuration(5000);
//设置时间持续时间为 5000毫秒
//设置时间持续时间为 5000毫秒
附件为相关实例:
- animation.zip (58.7 KB)
- 下载次数: 51
发表评论
-
android Log.isLoggable方法的使用
2014-06-06 15:35 3006android 动态控制logcat日志开关,通过Log. ... -
View not attached to window manager
2013-01-10 11:55 1081View not attached to window man ... -
代码设置android:icon,android:label
2013-01-05 15:26 7997requestWindowFeature( Window.F ... -
Android项目为一个apk设置多个ICON图标和执行入口
2013-01-05 12:13 3881Android开发中,一个工程对应一个AndroidManif ... -
Intent跳转到系统应用中的拨号界面、联系人界面、短信界面及其他
2012-12-04 12:15 01:调用系统发送短信界面 Uri smsT ... -
Android 源码目录结构详解
2012-11-22 17:20 1470这是Android2.1的源代码的 ... -
如何获取android源代码
2012-07-10 17:50 2741如何获取android源代码 研究 ... -
Android uses-permission大全
2012-06-12 17:33 1072android.permission.ACCESS_CHE ... -
Android 应用程序基础(Application Fundamentals)
2012-05-23 17:42 1272Android 应用程序基础(Application Fun ... -
转Android 音乐频谱实现
2012-02-18 23:35 0最近由于需要实现音乐频谱,所以今天就为大家普及一下。 这里实现 ... -
android VideoView本工程mp4文件
2012-01-09 18:42 2707最近在做一个demo,要求播放视频,记录一下。使用的是Vid ... -
关于android播放mp3与歌词同步问题收集
2012-01-09 17:57 1690关于android播放mp3与歌词同步问题收集,有时间再试。 ... -
android使用MediaPlayer播放音乐文件时遇到的问题
2012-01-09 17:38 18385把mp3文件放在Assets文件夹里,然后用MediaPlay ... -
android资源目录---assets与res/raw的不同
2012-01-05 11:49 2382android资源目录---assets与 ... -
Android 的cpu硬盘 内存 网络设置 系统信息 硬件信息
2012-01-04 10:56 1621转载 http://www.cnmsdn.com/html/2 ... -
使用 Android Compatibility Package 来简化开发工作
2012-01-04 10:12 1436转载 http://www.cnmsdn.com/html/2 ... -
Android 9Patch (NinePatch)
2011-12-26 16:06 45411:介绍 NinePatch图片以*.9.png结尾,和普通 ... -
Windows平台下Android源码的下载
2011-12-21 11:06 1263Windows平台下Android源码的下载 ... -
改变MenuItem默认背景
2011-12-07 19:58 1447@Override public boolean onCre ... -
Android横屏竖屏切换
2011-11-10 18:20 107转载 http://blog.csdn.net/leesido ...
相关推荐
在Android应用开发中,XML布局文件是构建用户界面(UI)的主要方式,它允许开发者以声明式编程的方式定义UI元素的结构和样式。"Android xml布局文件生成工具"是为了解决手动编写XML布局文件繁琐和耗时的问题而设计的...
本文将深入探讨如何使用XML在Android中创建和应用动画,以及布局动画的实现方法。 首先,让我们了解XML在Android动画中的作用。XML文件提供了一种声明式的方式来定义动画,这种方式既易于理解和维护,又可以复用。...
这个问题在标题“android 动画被父布局遮盖问题解决1”中被提及,并在描述中给出了解决方案。 首先,我们要理解这两个关键属性的作用: 1. `android:clipChildren="false"`:这个属性默认为true,意味着父布局会...
本篇文章将详细探讨如何在Android中使用XML配置平移动画。 首先,我们需要创建一个Android项目,并在项目的res/anim目录下创建一个XML文件来定义动画。在这个例子中,我们有名为`lefttoright.xml`的文件,其内容...
布局动画是Android中的一个特殊动画类型,它主要用于控件的添加、删除或者布局更改。布局动画由两个主要部分组成:动画集(Animation Set)和动画控制器(Animation Controller)。动画集定义了一系列动画效果,而...
这可以通过在XML布局文件中添加以下代码实现: ```xml android:id="@+id/windmill_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/windmill_...
Android为开发者提供了丰富的动画库,使得在布局中添加各种动态效果变得简单易行。本篇将深入探讨如何在Android中为布局添加动画效果,以实现一个简单的动画示例。 首先,Android动画主要分为两大类:属性动画...
5. 相关的XML布局文件:如activity_main.xml,定义了界面的结构和组件。 总的来说,这个项目展示了Android开发中自定义组件、动画以及灵活布局的应用,对于提升UI设计和交互体验具有很高的学习价值。通过理解和实践...
本篇将详细介绍如何在Android中使用XML来配置缩放动画。 首先,缩放动画(Scale Animation)是Android补间动画(Tween Animation)的一种,它允许视图在指定时间内进行大小的变化。这种动画可以用于模拟对象的放大...
在Android中实现四等分布局,开发者通常会用到以下几种方法: 1. **LinearLayout**: 使用`LinearLayout`可以轻松地创建垂直或水平方向的布局。要实现四等分,可以在垂直方向上放置两个`LinearLayout`,每个内部再...
本篇文章将深入探讨如何通过XML在Android中实现Tween动画。 首先,让我们了解Tween动画的基本原理。Tween动画基于帧动画,它通过在指定时间内改变对象的属性(如位置、大小、旋转角度或透明度)来创建平滑的过渡...
本教程将深入探讨Android的四种基本动画:缩放、平移、渐隐和旋转,并通过一个名为"TestAnimation"的示例项目来展示它们的实现方法。 首先,Android提供了两种主要的动画框架:属性动画(Property Animation)系统...
本篇文章将详细介绍如何在Android中对APK包中的XML文件进行解密,以及这一过程涉及的相关技术。 首先,我们需要理解APK的结构。APK本质上是一个ZIP文件,包含以下关键部分: 1. **AndroidManifest.xml**:这是应用...
本示例"03_Layout Animation 布局动画Demo下载"提供了一个关于如何在Android中实现布局动画的实践案例。 布局动画主要分为两种类型:进入动画和退出动画。进入动画是指视图首次出现在屏幕上的动画,而退出动画则是...
Android提供了四种基本类型的补间动画:Translate(平移)、Rotate(旋转)、Scale(缩放)和Alpha(透明度)。这些动画可以帮助开发者创建丰富的用户交互体验,提升应用的视觉吸引力。 一、Translate动画(平移) ...
在Android中,可以使用`AnimationDrawable`来实现帧动画。开发者需要准备一系列图片资源,然后在XML中定义动画序列,Android会按照指定的顺序和间隔逐帧显示图片。 **过渡动画(Transition Animation)** 过渡动画...
在这个"android属性动画(伸展收缩)"的示例中,我们将深入探讨如何利用属性动画来实现布局的伸展和收缩效果。这种效果常见于许多应用程序的展开式菜单、抽屉导航或折叠式控件中,为用户提供更丰富的视觉体验。 ...
在Android中,我们可以使用`AnimationDrawable`类来实现帧动画。首先,我们需要在资源目录下创建一个XML文件(如`frame_animation.xml`),定义每一帧图片及其持续时间: ```xml <animation-list xmlns:android=...
首先,让我们了解Android中的基本动画类型。Android支持两种主要的动画机制:补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画用于改变视图的位置、大小、透明度等属性,它通过在一段时间内平滑地...