Android中的动画效果,搞懂开源框架设计思想真的这么重要吗

  1. 长整型值:

  2. duration  属性为动画持续时间

  3. 说明:   时间以毫秒为单位

  4. 布尔型值:

  5. fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用

  6. –>

3.translate

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <translate

  3. android:fromXDelta=“30”

  4. android:toXDelta="-80"

  5. android:fromYDelta=“30”

  6. android:toYDelta=“300”

  7. android:duration=“2000”

  8. />

4.rotate

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <rotate

  3. android:interpolator="@android:anim/accelerate_decelerate_interpolator"

  4. android:fromDegrees=“0”

  5. android:toDegrees="+350"

  6. android:pivotX=“50%”

  7. android:pivotY=“50%”

  8. android:duration=“3000” />

三、如何使用XML中定义的动画

public static Animation loadAnimation (Contextcontext, int id)

//第一个参数Context为程序的上下文

//第二个参数id为动画XML文件的引用

//例子:

myAnimation=AnimationUtils.loadAnimation(this,R.anim.my_action);

//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件

四、如何在java代码中定义动画

1.代码:

  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);

2. 分析:

  1. 1.1 AlphaAnimation

  1. 第一步:AlphaAnimation类对象定义

  2. private AlphaAnimation myAnimation_Alpha;

  3. 第二步:AlphaAnimation类对象构造

  4. AlphaAnimation(float fromAlpha, float toAlpha)

  5. //第一个参数fromAlpha为 动画开始时候透明度

  6. //第二个参数toAlpha为 动画结束时候透明度

  7. myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);

  8. //说明:

  9. //                0.0表示完全透明

  10. //                1.0表示完全不透明

  11. 第三步:设置动画持续时间

  12. myAnimation_Alpha.setDuration(5000);

  13. //设置时间持续时间为 5000毫秒

  1. 1.2 ScaleAnimation

  2. 第一步:ScaleAnimation类对象定义

  3. private AlphaAnimation myAnimation_Scale;

  4. 第二步:ScaleAnimation类对象构造

  5. ScaleAnimation(float fromX, float toX, float fromY, float toY,

  6. int pivotXType, float pivotXValue, int pivotYT

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整资料开源分享

ype, float pivotYValue)

  1. //第一个参数fromX为动画起始时 X坐标上的伸缩尺寸

  2. //第二个参数toX为动画结束时 X坐标上的伸缩尺寸

  3. //第三个参数fromY为动画起始时Y坐标上的伸缩尺寸

  4. //第四个参数toY为动画结束时Y坐标上的伸缩尺寸

  5. /*说明:

  6. 以上四种属性值

  7. 0.0表示收缩到没有

  8. 1.0表示正常无伸缩

  9. 值小于1.0表示收缩

  10. 值大于1.0表示放大

  11. */

  12. //第五个参数pivotXType为动画在X轴相对于物件位置类型

  13. //第六个参数pivotXValue为动画相对于物件的X坐标的开始位置

  14. //第七个参数pivotXType为动画在Y轴相对于物件位置类型

  15. //第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置

  16. myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,

  17. Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

  18. 第三步:设置动画持续时间

  19. myAnimation_Scale.setDuration(700);

  20. //设置时间持续时间为 700毫秒

  21. 1.3 TranslateAnimation

  22. 第一步:TranslateAnimation类对象定义

  23. private AlphaAnimation myAnimation_Translate;

  24. 第二步:TranslateAnimation类对象构造

  25. TranslateAnimation(float fromXDelta, float toXDelta,

  26. float fromYDelta, float toYDelta)

  1. //第一个参数fromXDelta为动画起始时 X坐标上的移动位置

  2. //第二个参数toXDelta为动画结束时 X坐标上的移动位置

  3. //第三个参数fromYDelta为动画起始时Y坐标上的移动位置

  4. //第四个参数toYDelta为动画结束时Y坐标上的移动位置

  1. 第三步:设置动画持续时间 m

  2. myAnimation_Translate.setDuration(2000);

  1. 1.4 RotateAnimation

  2. 第一步:RotateAnimation类对象定义

  3. private AlphaAnimation myAnimation_Rotate;

  1. 第二步:RotateAnimation类对象构造

  2. RotateAnimation(float fromDegrees, float toDegrees,

  3. int pivotXType, float pivotXValue, int pivotYType, float pivotYValue)

  1. //第一个参数fromDegrees为动画起始时的旋转角度

  2. //第二个参数toDegrees为动画旋转到的角度

  3. //第三个参数pivotXType为动画在X轴相对于物件位置类型

  4. //第四个参数pivotXValue为动画相对于物件的X坐标的开始位置

  5. //第五个参数pivotXType为动画在Y轴相对于物件位置类型

  6. //第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置

  7. myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f,

  8. Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

  9. 第三步:设置动画持续时间

  10. myAnimation_Rotate.setDuration(3000);

五、如何使用java代码中的动画效果

  1. 使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果

  2. public void startAnimation (Animation animation)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Frame动画主要是通过AnimationDrawable类来实现的,它有start()和stop()两个重要的方法来启动和停止动画。Frame动画一般通过XML文件配置,在工程的res/anim目录下创建一个XML配置文件,该配置文件有一个根元素和若干个子元素。

实现一个人跳舞的Frame动画,6张图片如下所示:

1、把这6张图片放到res/drawable目录下,分别取名为:p01.png,p02.png,p03.png,p04.png,p05.png,p06.png。

2、在res/anim目录下创建一个XML配置文件,文件名为:dance.xml,文件内容:

<? xml version="1.0" encoding="utf-8" ?>

<

animation-list

xmlns:apk

=“http://schemas.android.com/apk/res/android”

apk:oneshot

=“false”

>

<

item

apk:drawable

="@drawable/p01"

apk:duration

=“500”

/>

<

item

apk:drawable

="@drawable/p02"

apk:duration

=“500”

/>
[外链图片转存中…(img-Euoepzmy-1641182541187)][外链图片转存中…(img-lsTAvbfh-1641182541188)][外链图片转存中…(img-jZ3YfE3e-1641182541189)][外链图片转存中…(img-P5AprzhG-1641182541189)][外链图片转存中…(img-5I8RAu7H-1641182541190)][外链图片转存中…(img-2eHocG7U-1641182541190)]

1、把这6张图片放到res/drawable目录下,分别取名为:p01.png,p02.png,p03.png,p04.png,p05.png,p06.png。

2、在res/anim目录下创建一个XML配置文件,文件名为:dance.xml,文件内容:

<? xml version="1.0" encoding="utf-8" ?>

<

animation-list

xmlns:apk

=“http://schemas.android.com/apk/res/android”

apk:oneshot

=“false”

>

<

item

apk:drawable

="@drawable/p01"

apk:duration

=“500”

/>

<

item

apk:drawable

="@drawable/p02"

apk:duration

=“500”

/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值