Android中的补间动画

【Android笔记26】Android中的动画效果之补间动画 前一篇文章学习了逐帧动画,逐帧动画是将N张图片组成动画的每一帧画面,这种动画效果有一个缺点,那就是需要事先准备好所有的动画资源图片。这篇文章要介绍Android中的第二种动画效果,补间动画,什么是补间动画呢???补间动画,那就是指定动画的开始帧、结束帧,对于中间的动画帧则全部让计算机自动计算,也就是计算自动补全中间的动画效果,是以简称:补间动画,当然这种我个人对补间动画的理解。补间动画效果:透明度渐变动画。旋转动画。缩放动画。平移动画。... 阅读详情

在动画中一般有三种动画方式:

补间动画;逐针动画;属性动画。

首先补间动画的实现步骤:

1.在res目录下建立文件夹anim

2.在anim文件夹下建立animation.xml动画文件

3.在animation.xml文件中描述某种动画的属性

4.在代码中利用AnimationUtils.loadAnimation方法加载动画文件

5.在代码中用View的startAnimation方法启动动画。

根据动画效果一般为:渐变动画(AlphaAnimation)

渐变动画的属性有:

fromAlpha动画起始时透明度,取值在0.0-1.0之间

toAlpha 动画结束时透明度,取值在0.0-1.0之间

duration 动画持续时间,以毫秒为单位

repeatCount 动画重复次数,这个重复次数不包括第一次播放。

实现代码:

xml文件

<?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="2000"
        android:repeatCount="3"
    ></alpha>
</set>
java代码:

 public void qidong01(View v){
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.alpha);  //加载xml文件为对象  
        iv.clearAnimation();
        iv.startAnimation(animation);   //赋值给ImageView   启动
    }
第二种实现方法 只用java代码

 //第二个启动动画事件
    public void qidong02(View v){
        Animation animation;
        animation = new AlphaAnimation(0.1f, 1.0f);  //设置透明度起点和终点
        animation.setDuration(2000);   //设置时长
        animation.setRepeatCount(2);   //设置次数

        iv.clearAnimation();  //删除动画
        iv.startAnimation(animation);  // 启动动画
    }
缩放动画(ScaleAnimation)

主要属性有:

fromXScale 动画起始时X坐标上的伸缩倍数0.0表示收缩到没有

fromYScale 动画起始时Y坐标上的伸缩倍数

toXScale 动画终止时X坐标上的伸缩倍数2.0表示扩大2倍

toYScale 动画终止时Y坐标上的伸缩倍数

pivotX  X轴上的伸缩参考点

pivotY  Y轴上的伸缩参考点50%代表X或Y方向坐标上的中点位置

duration 动画持续时间,以毫秒为单位
repeatCount 动画重复次数,这个重复次数不包括第一次播放。

实现代码:

xml文件代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <scale
        android:fromXScale="0.0"
        android:fromYScale="0.0"
        android:toXScale="2.0"
        android:toYScale="2.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="2000"
        />

</set>
java代码:

public void qidong01(View v){
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.scale);
        iv.clearAnimation();
        iv.startAnimation(animation);
    }
只用java实现的时候的代码:

public void qidong02(View v){
        Animation animation;
        animation = new ScaleAnimation(0.0f, 2.0f, 0.0f, 2.0f,
                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);  //设置x起点终点,y起点终点,以自身角度以50%的点为参考点扩展
        animation.setDuration(2000);   //设置时长
        animation.setRepeatCount(2);   //设置次数

        iv.clearAnimation();  //删除动画
        iv.startAnimation(animation);  // 启动动画
    }
平移动画(TranslateAnimation)  一般的主要属性有:

fromXDelta 动画起始时X坐标上的位置

fromYDelta 动画起始时Y坐标上的位置

toXDelta 动画终止时X坐标上的位置

toYDelta 动画终止时Y坐标上的位置

xml文件代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:fromXDelta="1080"
        android:toXDelta="0"
        android:fromYDelta="0"
        android:toYDelta="0"
        android:duration="2000"
        />

</set>
java代码:

public void qidong01(View v){
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.trans);
        iv.clearAnimation();
        iv.startAnimation(animation);
    }
只用java代码实现的时候代码:

 public void qidong02(View v){
        Animation animation;
        animation = new TranslateAnimation(1080.0f, 0.0f, 0.0f, 0.0f);  //设置x的起始位置,终止位置;Y的起始位置,终止位置。
        animation.setDuration(2000);   //设置时长
        animation.setRepeatCount(2);   //设置次数

        iv.clearAnimation();  //删除动画
        iv.startAnimation(animation);  // 启动动画
    }
旋转动画(RotateAnimation) 主要属性

fromDegrees 动画起始时的角度

toDegrees 动画终止时的角度

pivotX 旋转围绕点的X轴上相对位置,50% 代表自己的中点

pivotY 旋转围绕点的Y轴上相对位置,50% 代表自己的中点

实现代码:

xml文件的代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:fromXDelta="1080"
        android:toXDelta="0"
        android:fromYDelta="0"
        android:toYDelta="0"
        android:duration="2000"
        />

</set>
java代码:

 public void qidong01(View v){
        Animation animation = AnimationUtils.loadAnimation(this, R.anim.rotate);
        iv.clearAnimation();
        iv.startAnimation(animation);
    }
只用java代码实现的代码“

public void qidong02(View v){
        Animation animation;
        animation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);  //设置起始角度,终止角度,相对于自己,中点,相对于自己,中点
        animation.setDuration(2000);   //设置时长
        animation.setRepeatCount(2);   //设置次数

        iv.clearAnimation();  //删除动画
        iv.startAnimation(animation);  // 启动动画
    }<pre name="code" class="html">


逐针动画(FrameAnimation)

实现步骤:

1.在drawable目录下放置动画帧图片

2.在drawable文件夹下建立animation.xml动画文件

3.在animation.xml文件中描述每一帧

4.在代码中利用view.setBackgroundResource方法加载动画文件

5.在代码中用AnimationDrawable的start()方法启动动画xml文件代码:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/loading_1" android:duration="80" />
    <item android:drawable="@drawable/loading_2" android:duration="80" />
    <item android:drawable="@drawable/loading_3" android:duration="80" />
    <item android:drawable="@drawable/loading_4" android:duration="80" />
    <item android:drawable="@drawable/loading_5" android:duration="80" />
    <item android:drawable="@drawable/loading_6" android:duration="80" />
    <item android:drawable="@drawable/loading_7" android:duration="80" />
    <item android:drawable="@drawable/loading_8" android:duration="80" />
</animation-list>
java代码:

 public void qidong01(View v){

        iv.setBackgroundResource(R.drawable.fram);

        AnimationDrawable animationable = (AnimationDrawable) iv.getBackground();
        animationable.start();
    }
只用代码实现:

public void qidong02(View v){
        AnimationDrawable animationDrawable = new AnimationDrawable();//帧动画对象
        iv.setBackgroundDrawable(animationDrawable);//设置组件背景
        String packageName = this.getApplicationContext().getPackageName();//获取当前包名
        for (int i = 1; i <= 8; i++) {
            //从图片名称反射资源ID
            int id = this.getResources().getIdentifier("loading_"+i, "drawable",  packageName);
            Drawable frame = this.getResources().getDrawable(id);//得到动画帧的对象
            animationDrawable.addFrame(frame, 80);//添加帧,设定时间间隔
        }
        animationDrawable.setOneShot(false);// 只运行一次,false-无限循环
        animationDrawable.start();// 开始播放
    }

























别再自己造轮子了!用MONAI Model Zoo里的预训练模型,5分钟搞定医学影像AI项目 本文介绍了如何利用MONAI Model Zoo中的预训练模型快速搭建医学影像AI项目,大幅节省开发时间和计算资源。通过实战案例展示了UNet、DenseNet121等核心模型的应用技巧,帮助临床医生和研究者5分钟内启动高质量医学影像分析,特别适合小样本场景下的病灶分割和分类任务。 阅读详情

相关推荐

从FrSky到TBS:深度解析航模2.4G遥控协议江湖史(附ELRS高频头改装指南)

本文深度解析了航模2.4G遥控协议的技术演进史,从FrSky ACCST的兴衰到TBS Crossfire的崛起,再到开源协议ExpressLRS的革命性突破。文章不仅对比了各协议在延迟、距离与抗干扰能力上的技术内核,还提供了为多协议遥控器加装TBS Crossfire高频头的实战改装指南,帮助玩家打通协议壁垒,提升飞行体验。

weixin_29193259的博客 737

Android动画 补间动画

补间动画:属于Android中View动画的一种,就是涵盖了 平移、缩放、旋转 和 透明度四种变化的动画。实现方式有两种:xml文件 和 java代码。四种补间动画分别为、、、,他们的父类为Animation。

Android 领域开发程序员,希望通过写博客的方式不断的总结提升自己,大家共同进步哦! 2185

keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解

单片机的调试分为两种,一种是使用软件模拟调试,第二种是硬件调试,两种调试方式各有不同,软件模拟调试有误差,而硬件调试,借用仿真器调试是嵌入式开发中常用方法。

weixin_51624736的博客 3万+

Android动画-补间(Tween)动画

Android动画的两种方式,其中帧动画上篇文章已经讲了,这次主要讲解的就是补间动画,补间动画就是动画业务场景中常用的旋转,平移,缩放,和渐变效果,帧动画是通过轮播动画实现动画效果,补间动画通过在两个关键帧之间补充渐变的动画效果来实现的,相对而言补间动画的暂用的空间更小,补间动画有两种方式,一种是直接在代码中是实现,另外一种是在XML文件中定义,然后通过代码调用,如果以后有需要直接改xml文件就行

312

飞牛NAS一键部署小雅Emby全家桶:解锁海量影音资源与智能刮削

本文详细介绍了如何在飞牛NAS上通过Docker一键部署小雅Emby全家桶,完美解决传统WebDAV挂载无法刮削元数据的问题。该方案整合了小雅Alist海量影音资源与Emby媒体服务器,通过预下载超百GB元数据包,自动实现海报、简介等信息的完美匹配,打造出精美的个人影音库。部署过程需准备阿里云盘令牌与充足存储空间,并详解了从环境配置、镜像拉取到最终验证的完整步骤及优化技巧。

weixin_28312391的博客 924

PADS安装教程(超详细)

声明:个人实践 一、工具准备 pads9.5完整破解版百度网盘提取码【wjx9】 链接:https://pan.baidu.com/s/1pIP6BJO435ssmF7Hjwyz8A 提取码:wjx9 安装环境:win10 64位 二、开始解压安装 关闭杀毒,exe以管理员身份运行 点击【skip】,不然又得licese 点击【agree】 点击【modify】 设置安装的工具、路径及工程路径 设置完成后,开始【install】 在之后注册。 将Crack复制到PADS安装目录

qq_42057393的博客 5万+

【Android】补间动画用法最全详解

本文目录补间动画概述和分类各类补间动画实现AlphaAnimationScaleAnimationTranslateAnimationRotateAnimationAnimationSet 补间动画概述和分类 各类补间动画实现 AlphaAnimation ScaleAnimation TranslateAnimation RotateAnimation AnimationSet ...

lucashu的博客 7369

C#实战:YOLOv5+海康工业相机上位机开发全攻略(从图像采集到检测落地)

工业场景下AI质检系统的开发需要综合考虑硬件适配性、算法性能和稳定性。本文针对新能源电池极片缺陷检测场景,提出基于海康工业相机+YOLOv5+C#的技术方案,涵盖以下关键点: 工业级技术选型:选择支持全局快门的海康相机、OpenCvSharp图像处理、YOLOv5s轻量化模型,确保在无GPU工控机上稳定运行。 开发流程优化: 海康SDK集成:详细说明DLL配置和常见报错解决方案 YOLOv5模型导出:强调batch=1、opset12等工业适配参数 相机采集封装:提供线程安全的C#封装类,支持触发采集模式

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1197

Android动画之补间动画

Android动画之补间动画 和上面一章学的帧动画不同,帧动画 是通过连续播放图片来模拟动画效果,而补间动画开发者只需指定动画开始,以及动画结束"关键帧", 而动画变化的"中间帧"则由系统计算并补齐! Andoird所支持的补间动画效果有如下这五种,或者说四种吧,第五种是前面几种的组合而已~ AlphaAnimation:透明度渐变效果,创建时许指定开始以及结束透明度,还有动画的持续 时间,透明度的变化范围(0,1),0是完全透明,1是完全不透明;对应<alpha/>标签! ScaleAnim

u014714188的博客 762

从码农到生态建造者:我的一人公司运作方案

华哥·OPC 运营方案 v1.0 - 第一次迭代 🚀,搭建闭环生态系统,赋能 AI 时代的超级个体,更好的做自己,同时照亮别人。

AaronZZH 的博客 996

【手把手教学】YOLOv13的Dilated Reparam Block (DRB) 实现细节与优化技巧

DRB(Dilated Reparam Block)是一种创新的卷积神经网络模块,通过多分支膨胀卷积和结构重参数化技术显著提升模型性能。训练阶段使用不同膨胀率和卷积核大小的并行分支增强特征提取能力,推理阶段则将这些分支融合为单一高效的大核卷积。该方法成功解决了大核卷积的计算复杂度和训练困难等问题,在保持推理效率的同时,使模型准确率提升8.56%,mAP暴涨12.33%。DRB的核心在于训练时复杂、推理时简单的设计哲学,以及膨胀卷积的多尺度特征提取能力,为CNN性能优化提供了新的思路。

FJN110的博客 557

android四种补间动画

android的动画分为两大类:补间动画,帧动画。 补间动画又分为四大类:移动补间动画,缩放补间动画,旋转补间动画,透明补间动画。 这四种补间动画都是Animation的子类。 移动补间动画:TranslateAnimation eg: Animation  animation = new TranslateAnimation(0,50,0,50); 参数1:x轴的起始位置 参数...

zhanhao2027的博客 721

机床联网系列总结

总结机床联网专栏,两个好用的工具介绍,以及后续提升的方法和建议。

若云流风的专栏 934

动画与图形——安卓中的补间动画与帧动画

Animations(动画) 概述 Android提供了几种动画类型: View Animation Drawable Animation Property Animation:https://blog.youkuaiyun.com/nishigesb123/article/details/89446882 本文主要介绍View Animation,即补间动画与帧动画。 View Animatio...

旧日灯塔 187

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Android中的动画,逐帧动画,补间动画

1.  逐帧(frame)动画      逐帧动画要求开发者把需要展示的所有的静态图片收集起来,然后又android来控制显示这些图片。            也允许在代码中动态控制。      注意:                   示例代码:       final  AnimationDrawable anim = (AnimationDrawable)imageVi

OyangYujun的专栏 856

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android补间动画教程,Android中的补间动画(tween)的简单使用

相对帧动画,补间动画(tween)可以这么理解:我们不必像帧动画一样指定动画的每一帧,只需定义一个动画的开始和结束关键帧,而中间变化的帧由系统帮我们计算。tween动画可以分为下面几种:AlphaAnimation(透明渐变动画):示例:res/anim/alpha.xmlandroid:duration="2000"android:fillAfter="true"android:fromAlph...

weixin_42392367的博客 306

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android开发中的动画(上)--补间动画与帧动画

Android开发中的动画,更新到补间动画和帧动画化

zh773615704的博客 415

Android中的动画(帧动画、补间动画、属性动画)

总的来说,安卓动画可以分为两类,最初的传统动画和Android3.0之后的属性动画。 传统动画包括:帧动画( Frame Animation)和补间动画(Tweened Animation)。 下面来具体说一下各种动画的使用及特点:帧动画:是最容易实现的一种动画,它依赖于完善的UI资源;实现原理是将一张张单独的图片连贯起来进行播放,从而在视觉上产生动画的效果,类似于某些制作gif动画的方式。创建

BOBO_FAS的博客 636

Android中的动画和原理(帧动画和补间动画)

1、Android中的动画分类 Android中的动画可以分为三类:帧动画,补间动画,和属性动画 动画分类 说明 帧动画 通过不停的播放图片产生的动画效果 补间动画 对View的平移,旋转,缩放,透明产生效果 属性动画 动态的改变属性产生动画效果 2、帧动画及其原理 原理 帧动画是按照一定的顺序播放一系列图片,从而产生动画...

androidxiaogang的博客 1604

Android中的帧动画与补间动画的使用

前言 在日常开发中,我们有时候须要一些好看的动画效果,这时能够充分利用Android提供的这几种动画来实现。 Android提供了3种类型的动画: 补间动画:补间动画能够应用于View,让你能够定义一系列关于位置、大小、旋转和透明度的改变。从而让 View的内容动起来。 逐帧动画:传统的基于单元格的动画,每一帧显示一个不同的Drawable...

weixin_30502965的博客 149

Android中的动画有三种,分别是补间动画、帧动画、属性动画。

1. 补间动画 通过在两个关键帧之间补充渐变的动画效果来实现,其优点是可以节省空间。Android目前支持的补间动画有RotateAnimation(旋转)、ScaleAnimation(缩放)、AlphaAnimation(透明度)、TranslateAnimation(位移)、AnimationSet(组合)这5种。 实现补间动画的方式有两种:1.代码创建 2.使用xml 第一种:使用

永远是死循环 663

Android中的补间动画(tween)的简单使用

相对帧动画,补间动画(tween)可以这么理解:我们不必像帧动画一样指定动画的每一帧,只需定义一个动画的开始和结束关键帧,而中间变化的帧由系统帮我们计算。tween动画可以分为下面几种:AlphaAnimation(透明渐变动画):示例:res/anim/alpha.xml<?xmlversion="1.0"encoding="utf-8"?> <alp...

weixin_33907511的博客 130

android中补间动画制作,Android中的补间动画(tween)的简单使用

相对帧动画,补间动画(tween)可以这么理解:我们不必像帧动画一样指定动画的每一帧,只需定义一个动画的开始和结束关键帧,而中间变化的帧由系统帮我们计算。tween动画可以分为下面几种:AlphaAnimation(透明渐变动画):示例:res/anim/alpha.xmlandroid:duration="2000"android:fillAfter="true"android:fromAlph...

weixin_39595302的博客 121

Android Studio中的补间动画

1,动画发在res/anim/,创建new/Directory 2,创建动画, 平移,缩放,旋转,改变透明度 //平移 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0.0" android:fromYDelta="0.0" .

weixin_63307826的博客 2403

Android中的动画1(补间动画)

补间动画主要包括四种形式:旋转、淡入淡出、缩放、移动。对于这四种动画在这我只是做一下笔记,如果要看更详细的介绍,请转至 http://blog.youkuaiyun.com/wenwen091100304/article/details/53401648他把这四种动画分开做了详细的介绍,比较细致,需要翻页。这里是我的源码 这是我根据上面地址自己写的DEMO,比较全面,建议先看xml用法,再去看代码用法。

包子骑士的博客 360

关于Android补间动画中的属性值

Android补间动画:开发者设置动画过程中的关键帧,关键帧之间剩余的插补帧由计算机运算而来。 在XML文件中配置补间动画时,在工程项目的res\anim]filename 路径下。 示例代码如下: 代码一: xml version="1.0" encoding="utf-8"?> set xmlns:android="http://schemas.android.com/ap

u012807211的专栏 653
上一篇: controller配置汇总
下一篇: Android中Popupwindow弹出框
jack__ming
博客等级 码龄12年 9粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值