一、动画类型

Android的animation由四种类型组成:alpha、scale、translate、rotate

XML配置文件中

alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
translate 画面转换位置移动动画效果
rotate 画面转移旋转动画效果

Java Code代码中

AlphaAnimation 渐变透明度动画效果
ScaleAnimation 渐变尺寸伸缩动画效果
TranslateAnimation 画面转换位置移动动画效果
RotateAnimation 画面转移旋转动画效果

二、Android动画模式

Animation主要有两种动画模式:tweened 和 frame

  • 一种是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的动画代码

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <alpha/>
  4. <scale/>
  5. <translate/>
  6. <rotate/>
  7. </set>

四、Android XML动画解析

1. Alpha

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >
  3. <alpha
  4. android:fromAlpha="0.1"
  5. android:toAlpha="1.0"
  6. android:duration="3000"
  7. />
  8. <!-- 透明度控制动画效果 alpha
  9. 浮点型值:
  10. fromAlpha 属性为动画起始时透明度
  11. toAlpha   属性为动画结束时透明度
  12. 说明:
  13. 0.0表示完全透明
  14. 1.0表示完全不透明
  15. 以上值取0.0-1.0之间的float数据类型的数字
  16. 长整型值:
  17. duration  属性为动画持续时间
  18. 说明:
  19. 时间以毫秒为单位
  20. -->
  21. </set>
2. Scale
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <scale
  4. android:interpolator=
  5. "@android:anim/accelerate_decelerate_interpolator"
  6. android:fromXScale="0.0"
  7. android:toXScale="1.4"
  8. android:fromYScale="0.0"
  9. android:toYScale="1.4"
  10. android:pivotX="50%"
  11. android:pivotY="50%"
  12. android:fillAfter="false"
  13. android:duration="700" />
  14. </set>
  15. <!-- 尺寸伸缩动画效果 scale
  16. 属性:interpolator 指定一个动画的插入器
  17. 在我试验过程中,使用android.res.anim中的资源时候发现
  18. 有三种动画插入器:
  19. accelerate_decelerate_interpolator  加速-减速 动画插入器
  20. accelerate_interpolator         加速-动画插入器
  21. decelerate_interpolator         减速- 动画插入器
  22. 其他的属于特定的动画效果
  23. 浮点型值:
  24. fromXScale 属性为动画起始时 X坐标上的伸缩尺寸
  25. toXScale   属性为动画结束时 X坐标上的伸缩尺寸
  26. fromYScale 属性为动画起始时Y坐标上的伸缩尺寸
  27. toYScale   属性为动画结束时Y坐标上的伸缩尺寸
  28. 说明:
  29. 以上四种属性值
  30. 0.0表示收缩到没有
  31. 1.0表示正常无伸缩
  32. 值小于1.0表示收缩
  33. 值大于1.0表示放大
  34. pivotX     属性为动画相对于物件的X坐标的开始位置
  35. pivotY     属性为动画相对于物件的Y坐标的开始位置
  36. 说明:
  37. 以上两个属性值 从0%-100%中取值
  38. 50%为物件的X或Y方向坐标上的中点位置
  39. 长整型值:
  40. duration  属性为动画持续时间
  41. 说明:   时间以毫秒为单位
  42. 布尔型值:
  43. fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
  44. -->
3. Translate
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <translate
  4. android:fromXDelta="30"
  5. android:toXDelta="-80"
  6. android:fromYDelta="30"
  7. android:toYDelta="300"
  8. android:duration="2000"
  9. />
  10. <!-- translate 位置转移动画效果
  11. 整型值:
  12. fromXDelta 属性为动画起始时 X坐标上的位置
  13. toXDelta   属性为动画结束时 X坐标上的位置
  14. fromYDelta 属性为动画起始时 Y坐标上的位置
  15. toYDelta   属性为动画结束时 Y坐标上的位置
  16. 注意:
  17. 没有指定fromXType toXType fromYType toYType 时候,
  18. 默认是以自己为相对参照物
  19. 长整型值:
  20. duration  属性为动画持续时间
  21. 说明:   时间以毫秒为单位
  22. -->
  23. </set>

4. Rotate

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <rotate
  4. android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  5. android:fromDegrees="0"
  6. android:toDegrees="+350"
  7. android:pivotX="50%"
  8. android:pivotY="50%"
  9. android:duration="3000" />
  10. <!-- rotate 旋转动画效果
  11. 属性:interpolator 指定一个动画的插入器
  12. 在我试验过程中,使用android.res.anim中的资源时候发现
  13. 有三种动画插入器:
  14. accelerate_decelerate_interpolator    加速-减速 动画插入器
  15. accelerate_interpolator                加速-动画插入器
  16. decelerate_interpolator                减速- 动画插入器
  17. 其他的属于特定的动画效果
  18. 浮点数型值:
  19. fromDegrees 属性为动画起始时物件的角度
  20. toDegrees   属性为动画结束时物件旋转的角度 可以大于360度
  21. 说明:
  22. 当角度为负数——表示逆时针旋转
  23. 当角度为正数——表示顺时针旋转
  24. (负数from——to正数:顺时针旋转)
  25. (负数from——to负数:逆时针旋转)
  26. (正数from——to正数:顺时针旋转)
  27. (正数from——to负数:逆时针旋转)
  28. pivotX     属性为动画相对于物件的X坐标的开始位置
  29. pivotY     属性为动画相对于物件的Y坐标的开始位置
  30. 说明:        以上两个属性值 从0%-100%中取值
  31. 50%为物件的X或Y方向坐标上的中点位置
  32. 长整型值:
  33. duration  属性为动画持续时间
  34. 说明:       时间以毫秒为单位
  35. -->
  36. </set>

XML中使用动画效果

  1. public static Animation loadAnimation (Context context, int id)
  2. //第一个参数Context为程序的上下文
  3. //第二个参数id为动画XML文件的引用
  4. //例子:
  5. myAnimation= AnimationUtils.loadAnimation(this, R.anim.my_action);
  6. //使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件

五、Java代码中定义动画

  1. //在代码中定义 动画实例对象
  2. private Animation myAnimation_Alpha;
  3. private Animation myAnimation_Scale;
  4. private Animation myAnimation_Translate;
  5. private Animation myAnimation_Rotate;
  6. //根据各自的构造方法来初始化一个实例对象
  7. myAnimation_Alpha = new AlphaAnimation(0.1f, 1.0f);
  8. myAnimation_Scale = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
  9. Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
  10. myAnimation_Translate = new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
  11. myAnimation_Rotate = new RotateAnimation(0.0f, +350.0f,
  12. Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

六、Android 代码动画解析

1. AlphaAnimation

AlphaAnimation类对象定义

  1. 1. private AlphaAnimation myAnimation_Alpha;

AlphaAnimation类对象构造

  1. AlphaAnimation(float fromAlpha, float toAlpha)
  2. //第一个参数fromAlpha为 动画开始时候透明度
  3. //第二个参数toAlpha为 动画结束时候透明度
  4. myAnimation_Alpha = new AlphaAnimation(0.1f, 1.0f);
  5. //说明:
  6. //                0.0表示完全透明
  7. //                1.0表示完全不透明

设置动画持续时间

  1. myAnimation_Alpha.setDuration(5000);
  2. //设置时间持续时间为 5000毫秒

2. ScaleAnimation
ScaleAnimation类对象定义

  1. private ScaleAnimation myAnimation_Scale;

ScaleAnimation类对象构造

  1. ScaleAnimation(float fromX, float toX, float fromY, float toY,
  2. int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
  3. //第一个参数fromX为动画起始时 X坐标上的伸缩尺寸
  4. //第二个参数toX为动画结束时 X坐标上的伸缩尺寸
  5. //第三个参数fromY为动画起始时Y坐标上的伸缩尺寸
  6. //第四个参数toY为动画结束时Y坐标上的伸缩尺寸
  7. /*说明:
  8. 以上四种属性值
  9. 0.0表示收缩到没有
  10. 1.0表示正常无伸缩
  11. 值小于1.0表示收缩
  12. 值大于1.0表示放大
  13. */
  14. //第五个参数pivotXType为动画在X轴相对于物件位置类型
  15. //第六个参数pivotXValue为动画相对于物件的X坐标的开始位置
  16. //第七个参数pivotXType为动画在Y轴相对于物件位置类型
  17. //第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置
  18. myAnimation_Scale = new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
  19. Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

设置动画持续时间

  1. myAnimation_Scale.setDuration(700);
  2. //设置时间持续时间为 700毫秒

3. TranslateAnimation

ranslateAnimation类对象定义

  1. private TranslateAnimation myAnimation_Translate;

TranslateAnimation类对象构造

  1. TranslateAnimation(float fromXDelta, float toXDelta,
  2. float fromYDelta, float toYDelta)
  3. //第一个参数fromXDelta为动画起始时 X坐标上的移动位置
  4. //第二个参数toXDelta为动画结束时 X坐标上的移动位置
  5. //第三个参数fromYDelta为动画起始时Y坐标上的移动位置
  6. //第四个参数toYDelta为动画结束时Y坐标上的移动位置

设置动画持续时间

  1. myAnimation_Translate = new TranslateAnimation(10f, 100f, 10f, 100f);
  2. myAnimation_Translate.setDuration(2000);
  3. //设置时间持续时间为 2000毫秒

4. RotateAnimation
RotateAnimation类对象定义

  1. private RotateAnimation myAnimation_Rotate;

RotateAnimation类对象构造

  1. RotateAnimation(float fromDegrees, float toDegrees,
  2. int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)
  3. //第一个参数fromDegrees为动画起始时的旋转角度
  4. //第二个参数toDegrees为动画旋转到的角度
  5. //第三个参数pivotXType为动画在X轴相对于物件位置类型
  6. //第四个参数pivotXValue为动画相对于物件的X坐标的开始位置
  7. //第五个参数pivotXType为动画在Y轴相对于物件位置类型
  8. //第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置
  9. myAnimation_Rotate = new RotateAnimation(0.0f, +350.0f,
  10. Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

设置动画持续时间

  1. myAnimation_Rotate.setDuration(3000);
  2. //设置时间持续时间为 3000毫秒

如何Java代码中使用动画效果
使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果

    1. public void startAnimation (Animation animation)
    2. view.startAnimation(myAnimation_Alpha);
    3. view.startAnimation(myAnimation_Scale);
    4. view.startAnimation(myAnimation_Translate);
    5. view.startAnimation(myAnimation_Rotate);

Android为TV端助力 最详细的动画大全,包括如何在代码和在XML中使用的更多相关文章

  1. Android为TV端助力 很详细的序列化过程Parcelable

    直接上代码:注释都写的很清楚了. public class Entry implements Parcelable{ public int userID; public String username ...

  2. Android为TV端助力 Intent匹配action,category和data原则

    1.当你在androidmanifest里面定义了一个或多个action时 你使用隐式意图其他activity或者service时,规定你隐式里面的action必须匹配XML中定义的action,可以 ...

  3. Android为TV端助力 apk静默安装

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/47803149 之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢 ...

  4. Android为TV端助力 am命令以及hotkey文件的编写

    1.拨打电话:am start -a android.intent.action.CALL -d tel:10086 这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型. 2. 打开一个网页 ...

  5. Android为TV端助力记录EditText.setInputType的坑

    如XML中设置android:inputType=”numberDecimal”在Java代码中仅设置setInputType(EditorInfo.TYPE_NUMBER_FLAG_DECIMAL) ...

  6. android 最详细的动画大全,包括如何在代码和在XML中使用

    一.动画类型 Android的animation由四种类型组成:alpha.scale.translate.rotate XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画 ...

  7. Android为TV端助力:(转载)修改TextView字体样式

    一.开篇 因为 Android 字体相关的内容还比较多的.有时候其实我们只需要调整一下属性就可以满足设计师的需求,或者是一个退后的方案(毕竟有发版的时间卡住了),有一些效果可以大概满足需求. 那么本文 ...

  8. Android为TV端助力 转载:RecyclerView分页加载

    package com.android.ryane.pulltoloaddata_recyclerview; import android.os.Handler;import android.os.L ...

  9. Android为TV端助力转载:码农小阿飞(SpannableString)

    用SpannableString打造绚丽多彩的文本显示效果 引语 TeXtView大家应该都不陌生,文本展示控件嘛! 就用TextView显示普普通通的文本,OK,很简单,Android入门的都会,没 ...

随机推荐

  1. yolo_v3训练自己的模型(人脸及deep-sort)

    做deep-sort多目标跟踪需要结合yolo_v3进行检测行人 由于我的项目中需要对人脸进行检测,所以需要训练针对人脸的模型 训练样本是来自WIDER-FACE人脸库.(有3w+的图片和标注框) d ...

  2. 【Guava】使用Guava的RateLimiter做限流

    一.常见的限流算法 目前常用的限流算法有两个:漏桶算法和令牌桶算法. 1.漏桶算法 漏桶算法的原理比较简单,请求进入到漏桶中,漏桶以一定的速率漏水.当请求过多时,水直接溢出.可以看出,漏桶算法可以强制 ...

  3. [ASP.NET MVC]笔记(四) UnobtruSive AJAX和客户端验证

    UnobtruSive AJAX和客户端验证 ASP.NET MVC 已经默认开启非侵入试js和客户端验证,在web.config可以看到如下配置: <configuration> < ...

  4. 使用minukube部署kubernetes admission webhook实现etcd pod安全删除

    本需求来自于一道面试题

  5. 使用xmanager接收图形界面

    假设在win(192.168.0.101)上安装了xmanager,想接收来自linux(192.168.100.16)的图形界面. 1.在win端打开Xmanager - Passive 2.在li ...

  6. Go标准库:深入剖析Go template

    本文只关注Go text/template的底层结构,带上了很详细的图片以及示例帮助理解,有些地方也附带上了源码进行解释.有了本文的解释,对于Go template的语法以及html/template ...

  7. gcc:call to '__open_missing_mode' declared with attribute error

    因为使用 open 函数的时候,如果在第二个参数中使用了 O_CREAT,就必须添加第三个参数:创建文件时赋予的初始权限.这个取决于 gcc 的版本,有的版本不会报这个错误. 解决办法: 找到源码中报 ...

  8. Javascript 定时器调用传递参数的方法

    文章来源:  https://m.jb51.net/article/20880.htm 备注:先记下,以后整理: Javascript 定时器调用传递参数的方法,需要的朋友可以参考下. 无论是wind ...

  9. 第一册:lesson fifty one.

    原文: A pleasant climate. A:Where do you come frome? B:I come from Greece. A:What's the climate like i ...

  10. vim撤销undo与反撤销redo

    普通模式下  u 撤销 ctrl + r 反撤销