当前位置: 首页 > news >正文

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录

补间动画

1.创建资源文件夹

2.设置文件夹类型

3.创建.xml文件

4.样式设计

5.动画设置

6.动画的实现

内容拓展

7.在原基础上继续添加.xml文件

8.xml代码编写

(1)rotate_anim

(2)scale_anim

(3)translate_anim

9.MainActivity.java代码汇总

10.效果展示

逐帧动画

1.在drawable中添加loading_anim文件

2.样式设计

3.MainActivity.java代码

4.效果展示


补间动画

1.创建资源文件夹

2.设置文件夹类型

3.创建.xml文件

4.样式设计

在drawable文件中添加照片

5.动画设置

在alpha_anim.xml中写入渐变代码

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><alphaandroid:fromAlpha="1.0"android:toAlpha="0.0"android:duration="1000"android:repeatCount="10"android:repeatMode="restart"android:interpolator="@android:anim/linear_interpolator"/>
</set>

6.动画的实现

将动画与按钮控件进行绑定

在MainActivity.java中写入代码

以上为实现渐变动画的代码


内容拓展

继续实现缩放、旋转、平移等动画效果

7.在原基础上继续添加.xml文件

8.xml代码编写

(1)rotate_anim
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><rotateandroid:fromDegrees="0"android:toDegrees="360"android:duration="1000"android:pivotX="50%"android:pivotY="50%"android:repeatCount="infinite"android:repeatMode="reverse"/>
</set>
(2)scale_anim
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><scaleandroid:fromXScale="1.0"android:toXScale="0.5"android:fromYScale="1.0"android:toYScale="0.5"android:pivotX="50%"android:pivotY="50%"android:repeatMode="reverse"android:repeatCount="infinite"android:duration="3000"/>
</set>
(3)translate_anim
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta="0.0"android:toXDelta="100"android:fromYDelta="0.0"android:toYDelta="0.0"android:repeatCount="infinite"android:repeatMode="reverse"android:duration="3000"/>
</set>

9.MainActivity.java代码汇总

 //渐变ImageView lion_img = findViewById(R.id.imageView );Button alpha_btn = findViewById(R.id.button);alpha_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//加载动画Animation alpha_animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.alpha_anim);//在控件上执行动画lion_img.startAnimation(alpha_animation);}});//缩放Button rotate_anim = findViewById(R.id.button3);rotate_anim.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Animation rotate_animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.rotate_anim);lion_img.startAnimation(rotate_animation);}});//旋转Button scale_anim = findViewById(R.id.button2);scale_anim.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Animation rotate_animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.scale_anim);lion_img.startAnimation(rotate_animation);}});//平移Button translate_anim = findViewById(R.id.button4);translate_anim.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Animation rotate_animation = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.translate_anim);lion_img.startAnimation(rotate_animation);}});

10.效果展示

补间动画效果实现


逐帧动画

1.在drawable中添加loading_anim文件

该文件用于存储导入的多张照片,可视为集合。

创建后代码编写

2.样式设计

导入的imageView图片选用loading_anim集合,而非单张静态照片!!!!!!

3.MainActivity.java代码

4.效果展示

点击start_btn按钮,图片实现轮播效果


感谢各位读者的阅读!希望大家给出一键三连,多多支持原创。有错误和不解的地方,欢迎各位读者在评论区讨论,我也会不断学习不断改进,做出更加优质的作品!!!

相关代码资源(点击跳转)

http://www.xdnf.cn/news/897607.html

相关文章:

  • C#报错 iText.Kernel.Exceptions.PdfException: ‘Unknown PdfException
  • uniapp+vue2解构赋值和直接赋值的优缺点
  • 12.vite,webpack构建工具
  • 云原生玩法三问:构建自定义开发环境
  • 父组件prop传向子组件的值,被子组件直接v-model绑定 功能不生效
  • win10安装WSL2、Ubuntu24.04
  • 华为云学堂-云原生开发者认证课程列表
  • uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
  • 惊艳呈现:探索数据可视化的艺术与科学
  • 详细介绍uni-app中Composition API和Options API的使用方法
  • 微信小程序- 用canvas生成排行榜
  • iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
  • 大白话解释一下 MIC Bias
  • React - 组件通信
  • CDN:静态资源如何加速?
  • 采用轮询的方式实现在线人数
  • SpringAI 1.0.0 正式版——利用Redis存储会话(ChatMemory)
  • Kafka 入门指南与一键部署
  • SpringCloud学习笔记-3
  • Linux命令基础(2)
  • 软件功能测试目的是啥?如何通过测试用例确保产品达标?
  • <2>-MySQL库的操作
  • Python 字典(dict)的高级用法与技巧
  • 跨平台游戏引擎 Axmol-2.6.1 发布
  • [论文阅读] 人工智能 | 利用负信号蒸馏:用REDI框架提升LLM推理能力
  • 使用vsftpd搭建FTP服务器(TLS/SSL显式加密)
  • 大模型与 NLP、Transformer 架构
  • vue3子组件获取并修改父组件的值
  • TTT讲师认证题目学习记录
  • C++算法训练营 Day10 栈与队列(1)