Android Animation 动画使用详解,【秋招面试专题解析】

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

ImageView 中将帧动画设置为背景的方法举例如下:

<ImageView

android:id=“@+id/img”

android:layout_width=“80dp”

android:layout_height=“80dp”

android:layout_gravity=“center_horizontal”

android:background=“@anim/frame_animation” />

二、补间动画 使用详解

===========

补间动画也是Android中常用的动画之一,相对属性动画来说,补间动画的点击事件不会跟着动画的位置变化而变化。因为属性动画的点击事件会随着动画的位置变化而变化,后续将逐渐被属性动画替代。

1. 补间动画分类


补间动画 常用的分类如下:

  1. 透明动画 AlphaAnimation

  2. 旋转动画 ScaleAnimation

  3. 缩放动画 RotateAnimation

  4. 平移动画 TranslateAnimation

  5. 动画集合 AnimationSet

  6. XML 实现动画效果

2. 透明动画


AlphaAnimation 透明动画 可以设置动画的透明效果,执行时间,重复方式、重复次数等等。

AlphaAnimation 使用举例如下:

/**

  • 透明度动画AlphaAnimation 从不透明到完全透明

  • **/

// 起始透明度 到结束透明度 不透明到透明(1f-0f)

AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);

// 动画执行时间

alphaAnimation.setDuration(4000);

// 设置重复次数

alphaAnimation.setRepeatCount(2);

// 重复模式

alphaAnimation.setRepeatMode(Animation.RESTART);

// alphaAnimation.setRepeatMode(Animation.REVERSE);

// 保持结束时候的状态

alphaAnimation.setFillAfter(true);

mImageView.startAnimation(alphaAnimation);

3. 旋转动画


RotateAnimation 可以设置旋转动画的旋转角度、持续时间、重复次数等等。

RotateAnimation 使用举例如下:

/**

  • 旋转动画RotateAnimation,旋转360度

**/

RotateAnimation rotateAnimation = new RotateAnimation(0, 360);

rotateAnimation.setDuration(2000);

rotateAnimation.setRepeatCount(2);

mImageView.startAnimation(rotateAnimation);

4. 缩放动画


ScaleAnimation可以设置缩放动画的倍数,持续时间,重复模式等等。

ScaleAnimation使用举例如下:

/**

  • 缩放动画 ScaleAnimation使用方法 缩放2倍

  • */

ScaleAnimation scaleAnimation = new ScaleAnimation(1, 2, 1, 2);

scaleAnimation.setDuration(2000);

scaleAnimation.setRepeatCount(2);

scaleAnimation.setRepeatMode(Animation.RESTART);

mImageView.startAnimation(scaleAnimation);

5. 平移动画


TranslateAnimation可以设置平移动画的举例,持续时间,重复模式等等。

TranslateAnimation 使用举例如下:

/***

  • 平移动画TranslateAnimation 从x,y 轴 从(0,0)平移到(300,200) *

**/

TranslateAnimation translateAnimation = new TranslateAnimation(0,

300.f, 0, 200.f);

translateAnimation.setDuration(2000);

translateAnimation.setRepeatCount(2);

translateAnimation.setRepeatMode(Animation.RESTART);

mImageView.startAnimation(translateAnimation);

6. 动画集合


AnimationSet,可以实现设置AlphaAnimation、TranslateAnimation 、RotateAnimation、RotateAnimation 4种动画累加在一起,进而实现非一般的动画效果。

动画集合效果使用举例如下:

/***

  • 动画集合使用效果如下:

  • ***/

AnimationSet sets = new AnimationSet(true);

AlphaAnimation alphaAnimation1 = new AlphaAnimation(0.0f, 1.0f);

TranslateAnimation translateAnimation1 = new TranslateAnimation(0,

100.f, 0, 100.f);

RotateAnimation rotateAnimation1 = new RotateAnimation(0, 360);

ScaleAnimation scaleAnimation1 = new ScaleAnimation(1, 2, 1, 2);

// 将动画添加到set集合中

sets.addAnimation(alphaAnimation1);

sets.addAnimation(translateAnimation1);

sets.addAnimation(rotateAnimation1);

sets.addAnimation(scaleAnimation1);

sets.setDuration(4000);

sets.setRepeatCount(2);

sets.setRepeatMode(Animation.RESTART);

mImageView.startAnimation(sets);

7. XML 实现动画效果


实现动画有两种方式 ,一种是通过xml 设置,另一种是通过Java代码动态设置,上面讲的是Java代码中的动态设置,下面我们来看xml代码中的动画设置实现方法。

  • 1.XML文件声明动画内容

比如我们在res/anim/hyperspace_jump.xml中通过set 集合,声明旋转以及缩放动画方法举例如下:

<scale

android:interpolator=“@android:anim/accelerate_decelerate_interpolator”

android:fromXScale=“1.0”

android:toXScale=“1.4”

android:fromYScale=“1.0”

android:toYScale=“0.6”

android:pivotX=“50%”

android:pivotY=“50%”

android:fillAfter=“false”

android:duration=“700” />

<scale

android:fromXScale=“1.4”

android:toXScale=“0.0”

android:fromYScale=“0.6”

android:toYScale=“0.0”

android:pivotX=“50%”

android:pivotY=“50%”

android:startOffset=“700”

android:duration=“400”

android:fillBefore=“false” />

<rotate

android:fromDegrees=“0”

android:toDegrees=“-45”

android:toYScale=“0.0”

android:pivotX=“50%”

android:pivotY=“50%”

android:startOffset=“700”

android:duration=“400” />

  • 2.Java 代码中加载xml动画文件

完成在xml定义完动画后,我们可以在Java代码中动态引用xml文件,使用方法举例如下:

ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);

Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);

spaceshipImage.startAnimation(hyperspaceJumpAnimation);

三、 属性动画 使用详解

============

属性动画是补间动画的延伸,主要解决动画点击事件可以随位置到改变而改变,将来会替换补间动画。

1. 属性动画分类


  1. ValueAnimator

  2. ObjectAnimator

  3. TypeEvaluator

2. ValueAnimator 动画


ValueAnimator 使用方法如下:

ValueAnimator animation = ValueAnimator.ofFloat(0f, 100f);

animation.setDuration(1000);

animation.start();

3. ObjectAnimator动画


1. 属性动画分类

属性动画跟补间动画类似主要分为以下几类,

  1. 透明动画 alpha

  2. 旋转动画 rotation

  3. 缩放动画 scaleX

  4. 平移动画 translationX

  5. 动画集合 AnimatorSet

2. 旋转动画

rotation 可以设置旋转动画的旋转角度、持续时间、重复次数等等。

rotation 使用举例如下:

/**

  • 旋转动画 rotation

  • */

ObjectAnimator rotationanimator = ObjectAnimator.ofFloat(mImageView,

“rotation”, 0, 360);

rotationanimator.setDuration(2000);

rotationanimator.setRepeatCount(2);

rotationanimator.setRepeatMode(Animation.RESTART);

rotationanimator.start();

3. 缩放动画

scale可以设置缩放动画的倍数,持续时间,重复模式等等。

scaleX 使用举例如下:

/**

总结

我最近从朋友那里收集到了2020-2021BAT 面试真题解析,内容很多也很系统,包含了很多内容:Android 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题等等,可以很好地帮助大家深刻理解Android相关知识点的原理以及面试相关知识

这份资料把大厂面试中常被问到的技术点整理成了PDF,包知识脉络 + 诸多细节;还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

这里也分享给广大面试同胞们,希望每位程序猿们都能面试成功~

Android 基础知识点

Java 基础知识点

Android 源码相关分析

常见的一些原理性问题

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2020面试真题解析

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

们都能面试成功~

Android 基础知识点

[外链图片转存中…(img-hGaF9bF6-1713640073101)]

Java 基础知识点

[外链图片转存中…(img-8UQPlcK6-1713640073102)]

Android 源码相关分析

[外链图片转存中…(img-zamB8U8k-1713640073102)]

常见的一些原理性问题

[外链图片转存中…(img-zIzLq6hx-1713640073102)]

腾讯、字节跳动、阿里、百度等BAT大厂 2019-2020面试真题解析

[外链图片转存中…(img-krw5qzEP-1713640073103)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注Android)
[外链图片转存中…(img-yUTVJGxp-1713640073103)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值