![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动画
文章平均质量分 94
Luckie stone
Android应用开发。
展开
-
Android动画原理
首先说Animation(android.view.animation.Animation)对象。无论是用纯java代码构建Animation对象,还是通过xml文件定义Animation,其实最终的结果都是Animation a = new AlphaAnimation();Animation b = new ScaleAnimation();Animation c = new RotateAnimation();Animation d = new TranslateAnimation()原创 2020-06-20 10:20:40 · 517 阅读 · 0 评论 -
自定义控件三部曲之动画篇(七)——ObjectAnimator基本使用
一、概述1、引入上几篇给大家讲了ValueAnimator,但ValueAnimator有个缺点,就是只能对数值对动画计算。我们要想对哪个控件操作,需要监听动画过程,在监听中对控件操作。这样使用起来相比补间动画而言就相对比较麻烦。 为了能让动画直接与对应控件相关联,以使我们从监听动画过程中解放出来,谷歌的开发人员在ValueAnimator的基础上,又派生了一个类ObjectAnimator...转载 2019-01-16 21:41:50 · 303 阅读 · 0 评论 -
自定义控件三部曲之动画篇(六)——ValueAnimator高级进阶(二)
通过上两篇的讲解,我们对ValueAnimator的动画的整个过程应该都已经有较深入的理解,不过还有两个概念我们还没有讲解关键帧和ofObject(),关键帧的部分涉及问题比较多,我们将其放在系列的末尾再讲,这篇着重讲一下ofObject函数的使用一、ofObject()概述前面我们讲了ofInt()和ofFloat()来定义动画,但ofInt()只能传入Integer类型的值,而ofFlo...转载 2019-01-16 21:32:26 · 156 阅读 · 0 评论 -
自定义控件三部曲之动画篇(五)——ValueAnimator高级进阶(一)
上一篇给大家介绍了ValueAnimator的大部分函数的用法,不过还都是些简单的用法,这篇我们带大家来看看有关加速器、animator和keyFrame的知识。一、插值器插值器,也叫加速器;有关插值器的知识,我在《Animation动画详解(二)——Interpolator插值器》中专门讲过,大家可以先看看这篇文章中各个加速器的效果。这里再讲一下什么是插值器。我们知道,我们通过ofInt...转载 2019-01-16 21:24:59 · 306 阅读 · 0 评论 -
自定义控件三部曲之动画篇(二)——Interpolator插值器
一、概述Interpolator属性是Animation类的一个XML属性,所以alpha、scale、rotate、translate、set都会继承得到这个属性。Interpolator被译为插值器,其实我不大能从字面上理解为什么会这样译,其实他是一个指定动画如何变化的东东,跟PS里的动作有点类似:随便拿来一张图片,应用一个动作,图片就会指定变化。Interpolator的系统值有下面几...转载 2019-01-13 17:20:00 · 108 阅读 · 0 评论 -
自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法
一、概述Android的animation由四种类型组成:alpha、scale、translate、rotate,对应android官方文档地址:《Animation Resources》1、XML配置文件中alpha渐变透明度动画效果scale渐变尺寸伸缩动画效果translate画面转换位置移动动画效果rotate画面转移旋转动画效果下面我们逐个讲讲每个标签的属性...转载 2019-01-13 16:57:37 · 226 阅读 · 0 评论 -
自定义控件三部曲之动画篇(四)——ValueAnimator基本使用
一、概述long long ago,我写过几篇有关Animation的文章,讲解了传统的alpha、scale、translate、rotate的用法及代码生成方法。其实这三篇文章讲的所有动画效果叫做Tween Animation(补间动画) 在Android动画中,总共有两种类型的动画View Animation(视图动画)和Property Animator(属性动画);其中 Vi...转载 2019-01-16 21:17:05 · 266 阅读 · 0 评论 -
自定义控件三部曲之动画篇(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画
一、概述前两篇,我为大家讲述了利用XML来定义动画及插值器,但在代码中,我们常常是动态生成动画的,所以,这篇将为大家讲述如何用代码生成动态生成动画及插值器。先简单写出各个标签对应的类,方便大家理解:scale —— ScaleAnimationalpha —— AlphaAnimationrotate —— RotateAnimationtranslate —— Translate...转载 2019-01-13 17:29:35 · 178 阅读 · 1 评论 -
深入理解共享元素变换(Shared Element Transition)
什么是共享元素变换?元素共享式变换(shared element transition)决定了共享的view元素从一个Activity/Fragment 到另一个Activity/Fragment t的切换中是如何动画变化的。共享元素在被调用Activity进入和返回时播放动画,共享元素在进入和返回时的变换效果通过window和Fragment的如下方法来设置:进入:setShared...转载 2019-01-13 12:05:45 · 2730 阅读 · 0 评论 -
自定义控件三部曲之动画篇(八)——PropertyValuesHolder与Keyframe
前几篇给大家讲了ValueAnimator、ObjectAnimator的知识,讲解了它们ofInt(),ofFloat(),ofObject()函数的用法。细心的同学可能会注意到,ValueAnimator、ObjectAnimator除了这些创建Animator实例的方法以外,都还有一个方法:/** * valueAnimator的 */public static ValueAnim...转载 2019-01-16 21:50:07 · 223 阅读 · 1 评论 -
自定义控件三部曲之动画篇(九)——联合动画的代码实现
上几篇给大家分别讲了ValueAnimator和ObjectAnimator,相比而言ObjectAnimator更为方便而且由于set函数是在控件类内部实现,所以封装性更好。而且在现实使用中一般而言都是使用ObjectAnimator的机率比较大。 但ValueAnimator和ObjectAnimator都只能单单实现一个动画,那如果我们想要使用一个组合动画,比如边放大,边移动,边改变alp...转载 2019-01-16 22:04:26 · 278 阅读 · 0 评论 -
自定义控件三部曲之动画篇(十)——联合动画的XML实现与使用示例
上篇给大家讲了有关AnimatorSet的代码实现方法,这篇我们就分别来看看如何利用xml来实现ValueAnimator、ObjectAnimator和AnimatorSet; 在文章最后,将利用AnimatorSet来实现一个路径动画,效果图如下: (这里实现的是一个动画菜单,在点击菜单按钮时,弹出各个菜单)一、联合动画的XML实现在xml中对应animator总共有三个标签,分...转载 2019-01-16 22:16:35 · 164 阅读 · 0 评论 -
Android 帧动画OOM问题优化
普通实现实现一个帧动画,最先想到的就是用animation-list将全部图片按顺序放入,并设置时间间隔和播放模式。然后将该drawable设置给ImageView或Progressbar就OK了。首先创建帧动画资源文件drawable/anim.xml,oneshot=false为循环播放模式,ture为单次播放;duration为每帧时间间隔,单位毫秒。<animation-...转载 2019-10-10 06:59:31 · 652 阅读 · 0 评论 -
使用ConstraintSet修改ConstraintLayout某个子view
如果父View是ConstraintLayout约束布局,当修改某个view时候,直接创建ConstraintLayout.LayoutParams会有问题,没办法直接满足需求。所有使用ConstraintSet绝对没错具体使用步骤ConstraintSet set= new ConstraintSet();//获取一新的ConstraintLayout//mConstra...转载 2019-08-10 04:52:31 · 1996 阅读 · 0 评论 -
SVG在低版本ImageView中的兼容
最近写了一个svg动画,显示在<ImageView>中,svg是5.0以上新引入的特性,在低版本中需要做好兼容,否则运行在低版本上程序会直接crash。网上找了一下,教程还是挺多的。主要是以下三步:使用较新版本的v7兼容库23.2.0在build里加一行代码在xml中使用app:srcCompat代替android:src但是发现虽然能跑起来,但svg直接没有显示了,看...转载 2018-11-17 18:11:00 · 1169 阅读 · 0 评论 -
SVG_SVG动画案例
一个真正酷炫的动效往往让人虎躯一震,话不多说,咱们先瞅瞅效果:————————————————–如果你想看GAStudio Github主页,请戳这里;如果你想看GAStudio更多技术文章,请戳这里;QQ技术交流群:277582728;————————————————–这个效果我们需要考虑以下几个问题:1. 这是图片还是文字;2. 如果是图片该如何...转载 2018-11-17 18:25:00 · 416 阅读 · 0 评论 -
带帧动画的Selector
普通selector只能在两种状态图片之间切换,animated-selector允许通过帧动画从一个状态切换到另一个状态XML代码:<?xml version="1.0" encoding="utf-8"?><animated-selector xmlns:android="http://schemas.android.com/apk/res/android"&...转载 2019-06-14 06:41:49 · 390 阅读 · 0 评论 -
自定义控件三部曲之动画篇(十三)——实现ListView Item进入动画
前面两篇我们讲解了使用layoutAnimation和LayoutTransition实现ViewGroup中Item加载动画的方法,但他们都各自存在问题:layoutAnimation虽然是API 1中就已经引入,但只能在动画初次创建时才能使用指定动画。控件创建以后,再往ViewGroup里加Item就不会再有动画。这显然是不合适的!LayoutTransition能够实现无论何时往View...转载 2019-01-16 22:42:59 · 284 阅读 · 0 评论 -
自定义控件三部曲之动画篇(十二)——animateLayoutChanges与LayoutTransition
前篇给大家讲了LayoutAnimation的知识,LayoutAnimation虽能实现ViewGroup的进入动画,但只能在创建时有效。在创建后,再往里添加控件就不会再有动画。在API 11后,又添加了两个能实现在创建后添加控件仍能应用动画的方法,分别是android:animateLayoutChanges属性和LayoutTransition类。这篇文章就来简单说一下他们的用法。由于他们的...转载 2019-01-16 22:38:44 · 362 阅读 · 0 评论 -
自定义控件三部曲之动画篇(十一)——layoutAnimation与gridLayoutAnimation
前几篇给大家讲述了如何针对某一个控件应用动画,这篇将给大家讲解如何给容器中的控件应用统一动画。即在容器中控件出现时,不必为每个控件添加进入动画,可以在容器中为其添加统一的进入和退出动画。 从上面的示例动画也可以看出,listview中的数据在进入时就加入了统一动画,下面我们就来看看这些是怎么来实现的吧。 这篇我们将讲述有关普通viewGroup添加进入统一动画的LayoutAnimatio...转载 2019-01-16 22:32:10 · 297 阅读 · 0 评论 -
深入理解Content Transition
什么是Content Transitioncontent transition决定了非共享view元素在activity和fragment切换期间是如何进入或者退出场景的。根据google最新的Material Design设计语言,content transition让我们毫不费力的去协调Activity/Fragment切换过程中view的进入和退出,让这个过程更流畅。在5.0之后cont...转载 2019-01-13 12:04:23 · 371 阅读 · 0 评论 -
Activity和Fragment Transition介绍
什么是Transition?安卓5.0中Activity和Fragment 变换是建立在名叫Transitions的安卓新特性之上的。这个诞生于4.4的transition框架为在不同的UI状态之间产生动画效果提供了非常方便的API。该框架主要基于两个概念:场景(scenes)和变换(transitions)。场景(scenes)定义了当前的UI状态,变换(transitions)则定义了在不...转载 2019-01-13 12:01:22 · 822 阅读 · 0 评论 -
Android属性动画完全解析(上),初识属性动画的基本用法
在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理。补间动画则是可以对View进行一系列的动...转载 2018-08-03 06:49:29 · 118 阅读 · 0 评论 -
图解 Android 动画中 android:pivotX 和 android:pivotY 属性的含义
在 Android 动画中,缩放动画(scale标签)和旋转动画(rotate标签)均有android:pivotX和android:pivotY这两个属性,其值可以有多种形式,并不是很好理解。本文就用一个小 Demo 来展示这两个属性的含义,相信看了之后会有很直观的感受。android:pivotX表示缩放/旋转起点 X 轴坐标,可以是整数值、百分数(或者小数)、百分数p 三种样式...转载 2018-08-20 06:34:46 · 9578 阅读 · 0 评论 -
Android 利用 xml 文件实现 ImageView 的加载转圈动画
在请求数据返回之前,为了减少用户等待的焦虑感,经常需要有转圈加载等待的过渡效果。加载转圈动画效果如下(录屏软件有点问题,忽略上面部分,只看下面部分的转圈动画):1、在 res/anim/ 文件夹下新建anim_circle_rotate.xml:<?xml version="1.0" encoding="utf-8"?> <set xmlns:and...转载 2018-08-21 06:27:37 · 2765 阅读 · 1 评论 -
Android 属性动画(Property Animation) 完全解析 (下)
上一篇Android 属性动画(Property Animation) 完全解析 (上)已经基本展示了属性动画的核心用法:ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~当然了属性动画还有一部分的知识点,也能做出很不错的效果,将在本篇博客为您展示~1、如何使用xml文件来创建属性动画大家肯定都清楚,View Animator...转载 2018-07-13 06:27:19 · 114 阅读 · 0 评论 -
Android 属性动画(Property Animation) 完全解析 (上)
1、概述Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如:你希望View有一个颜色的切换动画;你希望可以使用3D旋转动画;你希望当动画停止时,View的位置就是当前的位置;这些View...转载 2018-07-13 06:27:05 · 108 阅读 · 0 评论 -
ViewAnimator教程
本文翻译自ViewAnimator Tutorial With Example In Android Studio在Android中,ViewAnimator是FrameLayout的一个子类,用来做Views之间的切换。它是一个变换控件的元素,帮助我们在Views之间(如TextView,ImageView或者其他layout)添加变换。它有助于在屏幕view添加动画。ViewAni...翻译 2018-05-03 14:31:02 · 1173 阅读 · 0 评论 -
Android中动画的详细讲解
逐帧动画定义逐帧动画,只要在<animation-list……>;元素中使用<item…/>子元素定义动画的全部帧就可以了!语法格式:<?xml version="1.0" encoding="utf-8"?><!-- 指定动画循环播放 --><animation-list xmlns:android="http://sc...转载 2018-07-09 06:17:30 · 216 阅读 · 0 评论 -
Android动画机制及其使用
作为交互的一部分,开发Android应用的时候时常会用到动画,这样可以使应用看起来不那么死板。某些较为特定的点击可以使用有趣的动画引起注意,进而可以获取更多的点击量。随着Android系统的不断完善,其动画机制也不断地改进,如早期的帧动画和补间动画,3.0之后加入属性动画,以及之后5.x加入的SVG矢量动画等。以下讲一些较为常用的动画实现方式,即帧动画、补间动画和属性动画。逐帧动画(Frame...转载 2018-07-09 06:17:39 · 521 阅读 · 0 评论 -
Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
ValueAnimator的高级用法在上篇文章中介绍补间动画缺点的时候有提到过,补间动画是只能对View对象进行动画操作的。而属性动画就不再受这个限制,它可以对任意对象进行动画操作。那么大家应该还记得在上篇文章当中我举的一个例子,比如说我们有一个自定义的View,在这个View当中有一个Point对象用于管理坐标,然后在onDraw()方法当中就是根据这个Point对象的坐标值来进行绘制...转载 2018-08-03 06:49:36 · 707 阅读 · 0 评论 -
Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
Interpolator的用法Interpolator这个东西很难进行翻译,直译过来的话是补间器的意思,它的主要作用是可以控制动画的变化速率,比如去实现一种非线性运动的动画效果。那么什么叫做非线性运动的动画效果呢?就是说动画改变的速率不是一成不变的,像加速运动以及减速运动都属于非线性运动。不过Interpolator并不是属性动画中新增的技术,实际上从Android 1.0版本开始就...转载 2018-08-03 06:49:43 · 102 阅读 · 0 评论 -
属性动画简单说明前篇(一)
因为公司开发SDK的原因,公司开发需要做各种动画UI特效,也算是对动画有一定的了解,所以准备写个博客巩固下。本篇就对贝塞尔曲线加上属性动画来说一下。1、线性别塞尔曲线的知识说明线性贝塞尔曲线的公式如下:B(t) = P0 + (P1 - P0)t 其中t的范围是[0,1](这个范围很是关键).说白了就是两点Point0,Point1之间构成的一条直线(线段),其作用可以看做是从P0点...转载 2018-08-01 06:18:59 · 143 阅读 · 0 评论 -
定义Window进入和退出效果
设置Dialog首先通过getWindow()方法获取它的窗口,然后通过getAttributes()方法获得window的WindowManager.LayoutParams lp, lp有个公共属性windowAnimations, 只要把要实现的animation的id赋值给它就可以了。问题是这个animation应该怎么写呢,研究发现,窗口进入和退出的效果分别是通过@android...转载 2019-01-13 11:39:50 · 328 阅读 · 0 评论 -
Android转场动画
假设,两个有Activity A和BA启动B: A发生exit动画,B发生enter动画 B返回A:B发生return动画,A发生reenter动画1、使用overridePendingTransitionactivity之间切换可以使用overridePendingTransition overridePendingTransition 其中,在A启动B时:e...转载 2019-01-13 08:50:12 · 2082 阅读 · 0 评论 -
Android Transition(Android过渡动画)
在Android 4.4 Transition 就已经引入了,但在Android 5.0(API 21)之后,Transition 被更多的应用起来。相对于View Animation或Property Animator,Transition动画更加具有特殊性,Transition可以看作对Property Animator的高度封装。不同于Animator,Transition动画具...转载 2019-01-12 19:51:10 · 2583 阅读 · 0 评论 -
Android5.0Activity的转场动画、过渡动画、过场动画、跳转动画
Activity的转场动画很早就有,但是太过于单调,样式也不好看,于是Google在Android5.0之后,又推出的新的转场动画,效果还是非常炫的,今天我们一起来看一下。 Android5.0之后Activity的出入场动画总体上来说可以分为两种,一种就是分解、滑动进入、淡入淡出,另外一种就是共享元素动画,下面我们分别就这两种动画进行说明:前提说明: ——开发工具:Android stu...转载 2019-01-13 08:42:08 · 454 阅读 · 0 评论 -
教你一步一步实现图标无缝变形切换
在API 21后,系统内置了AnimatedVectorDrawable ,它能将两个Path以动画方式切换。可是,毕竟不兼容5.0之前的版本,这个类还是过几年再用吧~。既然不用AnimatedVectorDrawable 类,我们就自己写一个呗~。1 读取SVG path并显示SVG绘制路径的命令虽然不多,如下(参考【W3School中SVG path教程】):M : 相当于mov...转载 2018-08-09 06:30:27 · 724 阅读 · 0 评论 -
Activity切换动画
毫无疑问,动画效果能提高用户体验。我们平时使用最多的动画基本上是属性动画和补间动画了,属性动画很强,基本能定制我们想要的动画,但是你是否知道,API 21(5.0)后系统内置了Activity之间的切换动画,而且非常酷炫,今天我跟大家一起分享一下。我们知道,在两个Activity之间切换,我们一般会写出类似下面的代码:Intent intent=new Intent(this,SecondA...转载 2018-08-08 06:37:24 · 223 阅读 · 0 评论 -
属性动画简单分析(二)
在《属性动画简单解析(一)》分析了属性动画ObjectAnimation的初始化流程:1)通过ObjectAnimation的ofXXX方法,设置propertyName和values。2)将propertyName和values封装成PropertyValueHolder对象:每个PropertyValueHolder对象持有values组成的帧序列对象KeyFrameSet对象;3...转载 2018-08-02 06:41:32 · 155 阅读 · 0 评论