Android View分析(五)—— 动画介绍

【Android】Animation和Gone不得不说的故事:分析动画对View的影响 提前掌握事件分发的知识,在分析Touch事件的时候有的放矢。熟悉Choreographer以及界面刷新流程,能够很快了解动画的执行过程。重在积累,有些知识可能当下看不出用途,用的时候才知道真舒服。 阅读详情

动画分为三种

1、传统的平移类动画

只是改变控件的视觉效果,但是实际位置没有变动,主要使用的类是TranslateAnimation(平移)、ScaleAnimation(缩放)、RotateAnimation(旋转)、AlphaAnimation(透明度)

2、帧动画

多张图片播放,这种需要控制图片的大小,不然容易oom

3、属性动画

3.1 ObjectAnimator动画

改变整体控件的位置,类似于传统的平移动画效果,继承ValueAnimator类,对他的封装,主要使用ObjectAnimator类,使用时传入对应的参数即可修改,参数包括translationX、translationY、scaleX、scaleY、rotate、alpha。

ObjectAnimator animator = new ObjectAnimator(view,"translationX",0,1);

3.2 ValueAnimator动画

可以改变控件的某一个属性,比如可以修改控件的高,设置逐渐变高等效果。这个又涉及两个重要的类
插值器TimeInterpolator:控制动画运行的规律,主要是时间的控制,
比如匀速LinearInterpolator、动画加速AccelearteInterpolator、最后阶段弹球效果BounceInterpolator、周期运动CycleInterpolator、先加速在减速AccelerateDecelerateInterpolator
实现:实现TimeInterpolator接口,重写getInterpolation()方法,在里面实现我们想要的效果
下面的就是和系统的LinearInterpolator一样的效果

public class MyLinearInterpolator implements TimeInterpolator {
    	@Override
    	public float getInterpolation(float input) {
        	return input;//这里面设置input*0.1表示只能完成总体效果的10%,input*20表示能完成2000%的效果,也就是如果画圆,前者只能画36度,后者可以画7200度,这部分的原理是因为估值器的fraction就是根据这个方法获取的值
    	}
}

估值器TypeEvaluator:控制动画的轨迹,某一刻的的最终效果
实现:实现TypeEvaluator接口,重写evaluate()方法

public class MyTypeEvluator implements TypeEvaluator<Float> {
    /**
     * fraction:表示动画完成度,据此计算当前动画的值
     * startValue:动画初始值
     * endValue:动画结束值
     * @return
     */
    @Override
    public Float evaluate(float fraction, Float startValue, Float endValue) {
        Float startInt = startValue;
        return (startInt+fraction*(endValue-startValue))*0.2f; //设置只能达到设置效果的20%
    }
}

PropertyValuesHolder:用来封装用户传入的属性和属性值

Android自定义动画View:打造动态交互界面 在Android开发中,自定义动画View是一类特殊的视图,它扩展了View类来实现复杂的动画效果。与系统提供的简单动画相比,自定义动画View能够提供更加丰富和灵活的动画表现形式,例如自定义的帧动画、路径动画等。自定义动画View能够增强用户界面的交互性和视觉吸引力。通过在应用中应用复杂的动画效果,可以提升用户体验,使应用更具有现代感和活力。此外,动画能够引导用户的注意力,为界面操作提供视觉反馈。对于专业Android开发者而言,掌握自定义动画View的创建和优化至关重要。 阅读详情

相关推荐

DCA决策曲线的解读和代码实现

0.决策曲线 决策曲线分析法(Decision Curve Analysis,DCA)是个与ROC曲线相提并论的相对比较新的模型评价方法。 关于它的原理,长篇大论的医学统计学知识解读实在不是我的强项,放上两个链接偷偷懒: https://www.plob.org/article/12455.html https://www.iikx.com/news/statistics/1622.html 如果想看文章,这篇里的fig7就是:https://www.ncbi.nlm.nih.gov/pmc/artic

weixin_42960896的博客 1万+

Android动画深入分析(View动画)

在MainActivity效果还不错新的动画继承Animation这个抽象类,然后重写initialize和方法initialize方法initialize方法是View的初始化方法,用于在View被添加到窗口或在View大小发生改变时初始化View的状态。在该方法中,您可以初始化一些变量、获取View的宽度和高度等,以便在后续的绘制过程中使用。applyTransformation方法。

m0_61130325的博客 1303

Windows环境下DataEase一站式安装指南(含WSL2+Docker配置)

本文详细介绍了在Windows环境下通过WSL2和Docker快速部署DataEase的完整教程。从WSL2配置、Docker环境搭建到DataEase离线安装,逐步指导用户完成一站式部署,特别适合需要快速搭建数据分析平台的开发者。教程包含常见问题解决方案和性能优化技巧,帮助用户高效使用这款国产开源数据可视化工具。

weixin_42526166的博客 392

【Android】Android 的三种动画(帧动画、View 动画、属性动画)

Android提供三种动画类型:帧动画、View动画(补间动画)和属性动画。帧动画通过连续播放图片序列实现,简单但易导致内存溢出。View动画包含四种基本变换(透明度、缩放、旋转、平移),通过XML定义视图的起始和结束状态,系统自动补间中间帧。属性动画则通过动态修改对象属性实现更灵活的动画效果。每种动画类型适用于不同场景,开发者可根据需求选择合适的实现方式。

LiuYaoheng的博客 1238

STM32MP157+AD7606BSTZ四通道IEPE传感器采集方案实战(附完整电路图)

本文详细介绍了基于STM32MP157和AD7606BSTZ的四通道IEPE传感器采集方案,涵盖硬件电路设计、软件驱动开发及系统性能优化。通过精确的恒流源设计和同步采样技术,实现高精度振动信号采集,适用于工业振动监测等应用场景。

weixin_42713608的博客 700

华东师范大学2020机试题解

1.统计卡牌的值 #include<iostream> #include<string> #include<vector> //#include<algorithm> using namespace std; int main() { int n; cin>>n; int answer=0; for(int i=0;i<n;++i) { string str; ci

qq_42254342的博客 1901

Android动画深入分析-View动画

一、安卓中的动画 1、分类 View动画 帧动画 属性动画 2、简单介绍 View动画 概念: view动画就是通过对场景里的对象不断做图像变换(平移、缩放、旋转、透明度) ,从而产生动画效果。 特点:渐进式动画,支持自定义。 帧动画 概念: 通过顺序播放一系列的图像从而产生动画效果。可以简单的理解为图片切换动画。 缺点:很显然图片过多过大就会导致oom ps:其实帧动画也是view动画...

dev晴天的博客 425

MacOS新手必看:HomeBrew安装避坑指南(含M1芯片适配方案)

本文为MacOS新手提供全面的HomeBrew安装指南,特别包含M1/M2芯片适配方案。从系统准备到核心安装流程,再到日常维护和高级配置,详细解析每个步骤的潜在问题及解决方案,帮助用户高效管理Mac软件。

weixin_28831399的博客 471

Android View动画整理

此前也有写 View 动画相关的内容,但都只是记录代码,没有特别分析。以此篇作为汇总、整理、分析。Android View 动画有4中,分别是View 动画可以单独使用,也可以一起使用,一起使用就叫复合动画。实现 View 动画有 2 种方式,java 方式和 xml 方式。Demo 图说明,动画作用在图片上。图片显示在左上角,图片右侧和下方的线是为了方便看出 View 动画前后的位置、大小对比,无实际作用。

weixin_44021334的博客 1327

D16: OpenClaw + Notion API:知识管理新玩法

本文介绍了如何利用OpenClaw连接Notion API构建自动化知识管理系统。文章首先分析了传统知识管理的痛点,包括信息分散、更新不及时等问题,并对比了Notion与其他工具在API完整性、结构化程度等方面的优势。接着详细说明了Notion API的获取和授权流程,并设计了包含项目知识库、技术决策库和会议纪要库的三层架构系统。最后通过会议纪要自动归档的实战案例,展示了如何通过YAML配置实现从飞书会议到Notion的自动化知识沉淀流程。该方案能有效解决团队知识管理中的信息碎片化问题,提升协作效率。

刘一说的IT专栏 273

【数据同化第一期】基本概念介绍

【数据同化第一期】基本概念介绍

WW、forever的博客 1901

Android移动view动画问题

Android写动画效果不是一般的麻烦,网上找了好久,终于解决了动画的问题,总结记录以共勉。 仅以水平方向移动效果做说明,垂直方向类似。 完整动画函数代码:  public void slideview(final float p1, final float p2) { TranslateAnimation animation = new TranslateAnimati

ljb_blog的专栏 8438

第67步 时间序列建模实战:ARIMA建模(Stata)

第67步 时间序列建模实战:ARIMA建模(Stata)

Jet4505的博客 6819

安卓 动画的深入分析

除了系统提供的四种View动画,还可以自定义动画View动画。自定义View动画只需要继承Animation抽象类,然后重写它的initialize和applyTransformation方法,在initialize方法中做初始化处理,在applyTransformation中进行相应矩阵变换即可。

weixin_50961942的博客 1416

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android 动画学习(一)之View Animation

转载请注明出处: Android动画初步         动画(Animation)在我们日常的Android开发工作当中使用得较为频繁,尤其对于Android游戏这个动画的集合体,掌握动画开发的重要性毋庸置疑。同样的,在Android应用开发中我们也经常使用动画效果来提升APP用户体验,比如应用中的图片的旋转,页面和页面之间的淡入淡出、左右渐入渐出切换效果等等。那从今天开始我们将进入

叶功恒的博客专栏 9186

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android 动画animation 深入分析

Android 动画animation 深入分析 前言:本文试图通过分析动画流程,来理解android动画系统的设计与实现,学习动画的基本原则,最终希望能够指导动画的设计。 0 本文中用到的一些类图 1 view animation  调用方法:view.startAnimation(animation); public void startAni

farmer_cc的专栏 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android view的width或者height变化的动画,Android View

1.View坐标(1)View的坐标参数主要有哪些?分别有什么要注意的要点?几个主要的坐标参数:1)Left,Right,top,Bottom;他们表示的并非是距离屏幕左上方的绝对值,而是表示view和他的父控件的相对坐标值,并且代表View的初始坐标,在绘制完毕后就不会再改变。2)X和Y表示的是View左上角相对于父控件的坐标值,即实时相对坐标。3)TranslationX,translatio...

weixin_33158756的博客 1721

深度剖析:Android View 动画原理大揭秘

视图动画(View Animation):也称为补间动画,是 Android 早期提供的动画机制,它通过对 View 的内容进行平移、缩放、旋转和透明度变化等操作来实现动画效果。视图动画的优点是使用简单,缺点是只能对 View 进行操作,且没有真正改变 View 的属性。属性动画(Property Animation):是 Android 3.0(API 级别 11)引入的一种动画机制,它可以直接改变 View 的属性值,实现更加灵活和复杂的动画效果。

Android开发领域创作者 1066

Android 中 View 炸裂特效的实现分析

前几天微博上被一个很优秀的 Android 开源组件刷屏了 - ExplosionField,效果非常酷炫,有点类似 MIUI 卸载 APP 时的动画。 ExplosionField 不但效果很拉风,代码写得也相当好,让人忍不住要拿来好好读一下。

老梁的专栏 1万+

Android补间动画原理介绍

一 简述 补间动画是Android诞生便支持的动画,也是App开发中最常用的动画,目前Android支持四种补间动画:位移(TranslateAnimation),旋转(RotateAnimation),缩放(ScaleAnimation)和透明(AlphaAnimation)。补间动画主要作用对象是Android的View。核心类的关系如下图所示: Animation是一个抽象类,...

为码消得人憔悴 1605

view动画的实现流程原理

之前去百度面试,被问到一些问题,补间动画的实现原理,属性动画的实现原理,两者的区别,为什么源码设计者要将补间动画设计成只改变位置而不改其真实属性值,这些问题如果不看源码根本无法回答,今天有时间来记录一下充实充实自己。我们来整理一下有关view动画的一下问题:  ①:调用view.startAnimation()后,动画是立即执行吗?  ②:假如动画持续时间 300ms,当调用了 View.star...

dream_caoyun的博客 1297

Android View的坐标获取详解以及动画坐标分析

在平面图形中,图形都是由点坐标确定的。同样,Android的设备屏幕也是一个,如果非3D图形,正常的view就是一个二维坐标屏幕的左上角的坐标A(0,0),如果屏幕的宽为:width,高:height 那么右下角的坐标是D(width,height)坐标的顶点从A点,向右和向下两个方向延伸。所有横坐标为X轴,中坐标是Y轴,变成坐标。

3431

Android Animation动画原理分析

动画在Android应用中是很常用的,而系统提供的Animation相关动画机制由于简单实用,经常是我们实现动画的首要选择。本文旨在分析Animation相关类实现动画的原理,目的是了解动画实现的主要流程,由于源码较为繁杂,故对一些与主干流程并不相关的代码进行了忽略。本文源代码基于4.0。如果只是想对Animation实现有个简要了解,可忽略前两节,直接从第三节看起。一、view基本层级结构Animation动画实在view的draw()方法里实现的,因此,要想了解Animation的实现原理,不得不对Vi

temp7695的博客 2104

android 动画解析,Android 动画分析

Android的动画可以分为三种:View动画、帧动画和属性动画,其实帧动画也属于View动画的一种,只不过它和平移、旋转等常见的View动画在表现形式上略有不同而已。1. View动画View动画的作用对象时View,支持4种动画效果:平移动画、缩放动画、旋转动画和透明度动画。其实帧动画也属于View动画,但是帧动画的表现形式跟上面的四种变化效果不太一样。下面我们介绍的View动画不特殊说明均指...

weixin_39736913的博客 187

自定义View系列:安卓动画机制

彻底搞懂安卓的动画机制,看本文就够了

qq_39867049的博客 896

Android 属性动画和View动画的特别之处

动画一些比较特殊的地方:    1. 属性动画完成之后.         1)没有改变的是:View的getLocalVisibleRect(), getLeft()等的值并没有没有改变。        2)改变的是:getLocationInWindow,getLocationOnScreen等的值已经改变。

bolang789的博客 414
上一篇: Android View分析(四)—— 自定义View
下一篇: EventBus2和EventBus3的使用和原理介绍
明天的增加
博客等级 码龄11年 22粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值