精华内容
下载资源
问答
  • Android属性动画和视图动画区别

    千次阅读 2017-04-16 11:36:53
    [Animation动画概述执行原理][Android动画之补间动画TweenAnimation][Android动画之逐帧动画FrameAnimation][Android动画之插值器简介系统默认插值器][Android动画之插值器Interpolator自定义][Android动画之...

    动画入门和进阶文章列表:

    [Animation动画概述和执行原理]
    [Android动画之补间动画TweenAnimation]
    [Android动画之逐帧动画FrameAnimation]
    [Android动画之插值器简介和系统默认插值器]
    [Android动画之插值器Interpolator自定义]
    [Android动画之视图动画的缺点和属性动画的引入]
    [Android动画之ValueAnimator用法和自定义估值器]
    [Android动画之ObjectAnimator实现补间动画和ObjectAnimator自定义属性]
    [Android动画之ObjectAnimator中ofXX函数全解析-自定义Property,TypeConverter,TypeEvaluator]
    [Android动画之AnimatorSet联合动画用法]
    [Android动画之LayoutTransition布局动画]
    [Android动画之共享元素动画]
    [Android动画之ViewPropertyAnimator(专用于view的属性动画)]
    [Android动画之Activity切换动画overridePendingTransition实现和Theme Xml方式实现]
    [Android动画之ActivityOptionsCompat概述]
    [Android动画之场景变换Transition动画的使用]
    [Android动画之Transition和TransitionManager使用]
    [Android动画之圆形揭露动画Circular Reveal]

    提起动画首先想到的是动画片,童年最爱的黑猫警长,葫芦娃,邋遢大王,大脸猫和蓝皮鼠,四驱兄弟,七龙珠等等,当时觉着好神奇,他们是怎么动的呢。动画其实就是一帧帧的画面顺序播放,只要画面切换的够快,会我们眼中形成视觉残留的效果,人眼不会感觉到突兀也就会认为画面是连续运动的,至于24帧什么的这里就不说了,现在的手机普遍支持60帧每秒,微鲸的vr设备好像87帧每秒,只要游戏本身不卡顿,玩起来还是挺流畅的。动画可以实现各种各样的特效,android平台开发过程中动画也相当重要。

            Android平台提供了强大的动画框架,使我们在完成复杂的特效时不用自己改变空间的位置或者设置属性通过简单的动画代码就可以实现,android3.0之前,主要包括两种动画方式:补间动画(Tween Animation)和帧动画(Frame Animation 或者 Drawable Animation),这两种动画统称为view 动画,针对视图动画存在的不足,3.0之后google增加了属性动画(Property Animation)。之后动画就被分成了View Animation 和Property Animation。

    关于动画的一道面试题:

    在应用中常看到不断变化的数字怎么实现?

    视图动画:

    1 补间动画(Tween Animation):

          补间动画是视图动画的一种,Tween中文意思是在两者之间,中文翻译成补间还是挺贴合意思的,view从一个位置的特定状态变化到另外一个位置,中间过程我们开发者不需要自己完成,补间动画会根据我们属性的设置自己进行每一帧的补充,最后展现一个变化的过程,就叫做补间动画(自己理解)。

    补间动画可以(仅可以)完成view的位置、大小、旋转、透明度等一系列简单的变换,可通过xml文件或者代码实现,通常补件动画都是利用xml文件实现,属性设置简单明了,又可以重复使用。

         基于View的渐变动画,她只改变了View的绘制效果,而实际属性值未变。比如动画移动一个控件的位置,但控件实际位置仍未改变,如果我们此时想选中控件,它的位置仍在动画之前的位置。可以在res/anim/文件夹中定义XML文件实现动画,也可以利用AnimationSet类和Animation的子类完成动画。

    alpha  渐变透明度动画效果

    scale  渐变尺寸伸缩动画效果

    translate 画面转换位置移动动画效果

    rotate  画面转移旋转动画效果

    举例:放在res/anim/文件夹下:

      <?xml version="1.0" encoding="utf-8"?>  
    
        <scale xmlns:android="http://schemas.android.com/apk/res/android"  
    
            android:fromXScale="0.0"  
    
            android:toXScale="1.1"  
    
            android:fromYScale="0.0"  
    
            android:toYScale="1.1"  
    
            android:pivotX=30"  
    
            android:pivotY="20"  
    
            android:duration="500" />  

    补间动画使用很方便,但也有很大的局限性,首先动画虽然执行了但是只是我们看到的,控件真实的位置透明度等都没有变化,如果我们想对一个已经移动的控件执行点击事件,如果控件移动的位置比较大点击界面上看到的控件是无法触发事件的。

    补间动画只能针对设计好的特定的几种属性执行动画,对于自定义的属性则不太好完成(或者说根本不支持)。

    2 帧动画(Frame Animation 或者 Drawable Animation):

    帧动画也是view动画的一种,帧动画是通过读取xml文件中设置的一系列Drawable,以类似幻听片的方式展示这些drawable,就形成了动画效果,当然也可以利用代码实现帧动画。可能大家觉着帧动画不太常用,其实类似的原理可以借鉴,类似android手机开机的很多动画效果就是类似帧动画,加载一系列图片,实现开机的动画效果。

         在代码中定义动画帧,使用AnimationDrawable类;XML文件能更简单的组成动画帧,在res/drawable文件夹,使用<animation-list>采用<item>来定义不同的帧。

    但是依旧推荐使用xml,具体如下:

    <animation-list> 必须是根节点,包含一个或者多个<item>元素,属性有:

    · android:oneshot true代表只执行一次,false循环执行。

    · <item> 类似一帧的动画资源。

    <item> animation-list的子项,包含属性如下:

    · android:drawable 一个frame的Drawable资源。

    · android:duration 一个frame显示多长时间。

    文件放在res/drawable/目录下 

    <?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    
        android:oneshot=["true" | "false"] >
    
        <item
    
            android:drawable="drawable_resource"
    
            android:duration="integer" /></animation-list>

    帧动画是最简单的动画,用的比较少。

    3 属性动画(Property Animation):

         属性动画在视图动画之后推出,API 11 以上才能够使用,是为了弥补视图动画存在的问题,从名字可以看出属性动画和视图动画的不同,视图动画主要针对视图起作用,属性动画则是通过改变Object的属性进行动画实现。通过改变view或者object的属性实现动画是属性动画的最根本的特点。

    对数值的操作:

    ValueAnimator animator = ValueAnimator.ofInt(0,700);  
    
     animator.setDuration(1000);  
    
     animator.start(); 

    对view的操作

    ObjectAnimator animator = ObjectAnimator.ofFloat(view,"alpha",1,0,1);  
    
    animator.setDuration(1000);  
    
    animator.start();  

    第一个参数用于指定这个动画要操作的是哪个控件

    第二个参数用于指定这个动画要操作这个控件的哪个属性

    第三个参数是可变长参数,这个就跟ValueAnimator中的可变长参数的意义一样了,就是指这个属性值是从哪变到哪

    添加监听:

    ValueAnimator animator = ValueAnimator.ofInt(0,400);  
    
    animator.setDuration(1000);  
    
    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {  
    
        @Override  
    
       public void onAnimationUpdate(ValueAnimator animation) {  
    
           int valcur = (int)animation.getAnimatedValue();  
    
        }  
    
    });  
    
    animator.start();  

     

    4 视图动画和属性动画的区别:

    由于出现的时间不同,视图动画和属性动画有几个显而易见的不同:

       视图动画早于属性动画,视图动画在API 1里面就已经存在,属性动画直到API3.0才出现,视图动画所在的包名为android.view.animation,属性动画为android.animation,可见视图动画只针对view起作用;试图动画中用到的类一般以Animation结尾,而属性动画则以Animator结尾。

    为什么引入视图动画:

       帧动画可以通过顺序播放资源来实现动画的,补间动画可以实现控件的渐入渐出、移动、旋转和缩放效果。但类似利用动画改变View的背景或者改变一个数值或者改变一个对象的属性视图动画就无法完成此类工作了,所以视图动画存在局限性。属性动画还支持监听动画过程,在动画过程中自己操作控件进行改变。

       视图动画的文件在android.view.animation下,通过学习也可以知道,视图动画只能作用于视图,实现类似缩放、旋转功能,动画效果比较固定;而属性动画可以通过改变View的属性完成动画,利用setxxx()和getxxx()函数可以对Object的任意属性改变,从而可以实现视图动画实现不了的功能。可以通过在object中添加属性的set函数,在ondraw方法中操作属性就可以完成动画

    属性动画通过改变view属性实现动画,而视图动画虽然利用动画改变了view的位置和大小,但view真正的属性没有改变,这就会导致许多问题,视图动画过后我们再去操作view则得不到响应,这就是为什么自定义控件利用动画改变控件位置后还有调用layout()设置view位置的原因,这样才能真正的改变view的位置,而属性动画就可以一步到位的完成。

    总结如下:

    (1)属性动画比视图动画更强大,不但可以实现缩放、平移等操作,还可以自己定义动画效果,监听动画的过程,在动画过程中或完成后做响应的动作。

    (2)属性动画不但可以作用于View,还能作用于Object。

    (3)属性动画利用属性的改变实现动画,而视图动画仅仅改变了view的大小位置,但view真正的属性没有改变。

    完!后续会对属性动画,视图动画,插值器,自定义属性动画等进行系列介绍。

       

    展开全文
  • css动画与js动画区别

    千次阅读 2018-09-21 10:42:55
    使用动画 (js实现动画,css3实现动画) + 一个是帧动画 一个是补间动画 + 什么是帧动画:使用定时器 每隔一段时间 更改当前元素的状态 + 什么是补间动画:过渡(加过渡只要状态发生改变产出动画) 、 动画(多个节点...

    使用动画 (js实现动画,css3实现动画)
    + 一个是帧动画 一个是补间动画
    + 什么是帧动画:使用定时器 每隔一段时间 更改当前元素的状态
    + 什么是补间动画:过渡(加过渡只要状态发生改变产出动画) 、 动画(多个节点来控制动画) ,性能会更好
    + 在支持H5C3的的浏览器尽可能使用css3动画 (移动端开发)

    CSS动画

    优点:

    1、浏览器可以对动画进行优化。

    (1) 浏览器使用与 requestAnimationFrame 类似的机制,requestAnimationFrame比起setTimeout,setInterval设置动画的优势主要是:1)requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。2)在隐藏或不可见的元素中requestAnimationFrame不会进行重绘或回流,这当然就意味着更少的的cpu,gpu和内存使用量。

    (2)强制使用硬件加速 (通过 GPU 来提高动画性能)

    2、代码相对简单,性能调优方向固定

    3、对于帧速表现不好的低版本浏览器,CSS3可以做到自然降级,而JS则需要撰写额外代码

    缺点:

    1、 运行过程控制较弱,无法附加事件绑定回调函数。CSS动画只能暂停,不能在动画中寻找一个特定的时间点,不能在半路反转动画,不能变换时间尺度,不能在特定的位置添加回调函数或是绑定回放事件,无进度报告

    2、 代码冗长。想用 CSS 实现稍微复杂一点动画,最后CSS代码都会变得非常笨重。

    JS动画

    优点:

    1、JavaScript动画控制能力很强, 可以在动画播放过程中对动画进行控制:开始、暂停、回放、终止、取消都是可以做到的。

    2、动画效果比css3动画丰富,有些动画效果,比如曲线运动,冲击闪烁,视差滚动效果,只有JavaScript动画才能完成

    3、CSS3有兼容性问题,而JS大多时候没有兼容性问题

    缺点:

    1、JavaScript在浏览器的主线程中运行,而主线程中还有其它需要运行的JavaScript脚本、样式计算、布局、绘制任务等,对其干扰导致线程可能出现阻塞,从而造成丢帧的情况。

    2、代码的复杂度高于CSS动画

    总结:如果动画只是简单的状态切换,不需要中间过程控制,在这种情况下,css动画是优选方案。它可以让你将动画逻辑放在样式文件里面,而不会让你的页面充斥 Javascript 库。然而如果你在设计很复杂的富客户端界面或者在开发一个有着复杂UI状态的 APP。那么你应该使用js动画,这样你的动画可以保持高效,并且你的工作流也更可控。所以,在实现一些小的交互动效的时候,就多考虑考虑CSS动画。对于一些复杂控制的动画,使用javascript比较可靠。

    展开全文
  • 目前市场上,对二维动画和三维动画的需求越来越多,那么这两种动画在表现形式有什么不同,我们又该如何区分呢?下面就来了解一下吧。 首先,我们先了解一下二维动画 二维动画是根据某个场景的人和物的画面绘制,然后...

    目前市场上,对二维动画和三维动画的需求越来越多,那么这两种动画在表现形式有什么不同,我们又该如何区分呢?下面就来了解一下吧。
    首先,我们先了解一下二维动画
    二维动画是根据某个场景的人和物的画面绘制,然后把一幅幅的图片再连续起来做成动画。二维动画其实就是一个在平面上的图画,无论怎样去看,画面的内容都不会发生改变。

    上图为二维动画真实图片
    二维动画的特点:
    1、纯手工绘制的传统动画,画面清晰生动。
    2、修改方便,可将事先手工制作的原动画逐帧输入计算机,加以修改。
    3、可以使动画更加形象,表现较为夸张。
    其次,来看看三维动画三维动画
    三维动画是现在应用最广泛的一种技术,又被人们称之为3D动画,其利用人眼看事物时的一种立体视觉现象所制作而成的绘画作品,运用了人眼对光影、明暗、虚实的感觉得到立体的感觉。真正的三维画面,画中景物无论从哪个角度去看,都能够看到不同的内容。

    图为真实三维动画
    三维动画是怎么制作的呢,简单地说一下。首先利用三维动画软件在电脑中建起一个虚拟世界,然后设计师就在虚拟的三维世界中,按照要展示的内容来建立场景或模型,再根据客户的要求来设定该模型的动画参数,最后在这个模型上加入特定的材质,并打上灯光。完成后利用计算机来自动运算,生成最后的画面。
    三维动画的特点:
    1、特效效果诸多;如爆炸、光影、烟雾、下雨、光效等。
    2、不需要利用机器拍摄画面。
    3、一些实现不了的画面,都可以利用三维动画软件制作而成。
    4、画面可以出乎人的意料之外。
    通过以上的讲解,想必大家对二维动画和三维动画已经有了一定的了解。二维动画的画面是静止的,三维动画的画面是立体的,真实感极强,说到最后,也就是平面与立体的区别。

    本文地址: http://www.chinasjha.com/article-84-1.html

    展开全文
  • 动画 精灵列表的一种 在游戏进行的每一帧,记录当先渲染图片/精灵的位置,在目标位置实时渲染出该精灵。每一帧刷新渲染区域 ...二者还是有很大区别的,是两种思考的出发点(矢量图标量图的二维化) ...

    帧动画

    • 精灵列表的一种
      在游戏进行的每一帧,记录当先渲染图片/精灵的位置,在目标位置实时渲染出该精灵。每一帧刷新渲染区域

    骨骼动画

    • 时代的产物
    • 人体展现出来的是皮肤,但是带动皮肤运动的骨骼
      随着图像渲染从CPU->GPU,渲染的内容从记录每个精灵改为记录需要渲染的位置。设计骨头的顶点,骨头之间的联系。设计蒙皮(图片精灵),蒙皮的坐标,展示的顶点。

    二者还是有很大区别的,是两种思考的出发点(矢量图和标量图的二维化)

    展开全文
  • MG动画设计

    千次阅读 2019-01-02 20:20:52
    MG动画设计一、什么是MG动画二、制作软件PSAE[C4D](https://mp.csdn.net/mdeditor/85635524#)PR三、制作流程1.创意文案策划(1)选题(2)文案2.脚本设计(1)分镜头脚本设计(2)转场设计3.图形创意(1)平面设计...
  • IOS 复杂动画设计 (一)

    千次阅读 2018-12-26 08:59:11
    IOS 动画开发设计 动画设计原则
  • 一、动画框架概要 Qt动画框架的目的是提供一种简单的方法来创建具有动画效果的GUI界面(图形用户界面,是指采用图形方式显示的计算机操作用户)。该框架是通过控制Qt的属性来实现动画的。是由QAbstractAnimation...
  • Matlab动画设计

    千次阅读 2011-11-15 21:52:39
    用擦除方式动画设计。函数---> EraseMode  不过现在版本已经不支持! 2. 质点运动轨迹方式动画设计 调用函数: comet  comet3 3. 电影放映式 动画设计 调用函数: moviein  getframe  ...
  • css3中transition过渡animation动画区别  animation 多两个参数,循环和动画的方式transition不能自行触发,通过hover等动作或结合JS进行触发。anmiation可以自行运行。transition可控性较弱,只能指定起始...
  • 本文总结了能改善用户体验的八大网页动画设计,并用实际例子加以说明。 过程处理 加载动画 网页中最常用的动画莫过于加载动画了,有趣的加载动画会减少用户对时间的感知。 若在减少加载时间上束手无策,请
  • Android Animation (动画设计)

    千次阅读 2016-04-17 01:42:56
    Android Animation(动画设计) Android的图形处理基础 Bitmap与BitmapFactory Canvas,Paint,Path的绘图API Matrix ,图像的几何变换 逐帧动画,补间动画,属性动画介绍 drawBitmapMesh扭曲图片, Shader渲染图片...
  • 1. 缓动函数简介 (1) 缓动函数的动画效果是建立在 CALayer 层级的关键帧动画基础之上的; (2) 缓动函数是一系列模拟物理效果(如抛物线)方程... (4) 了解了缓动函数的原理对设计出自己想要的动画效果有很大帮助。
  • 移动平台动画设计的12个原则

    千次阅读 2013-03-06 17:54:26
    移动端动画设计的12个原则 在移动设备用户体验设计领域,微妙精致的动画已成为非常重要的设计元素。为任何对象添加动画并不简单,需要观察研究在真实世界中物体是如何在时空中运动的,需要设计者关注细节,并且具有...
  • 显而易见,window与Activity本身从名字上就知道不同,但对于项目开发中 windowAnimationActivityAnimation的区别必须心领神会。 区别主要如下 1.windowAnimation包括windowEnterAnimation...
  • Silverlight & Blend动画设计系列三:缩放动画(ScaleTransform)  在Silverlight的动画框架中,ScaleTransform类提供了在二维空间中的坐标内进行缩放操作,通过ScaleTransform可以在水平或垂直方向的缩放拉伸...
  • 动画中的模块化设计

    2015-07-12 10:07:12
    动画中的模块化设计
  • Flash动画设计交互式按钮

    千次阅读 2020-03-29 01:35:03
    *## Flash动画设计 F
  • CSS动画的毕业设计

    千次阅读 多人点赞 2020-09-02 20:09:25
    CSS动画的毕业设计 用CSS动画写一个七龙珠,据说善良的程序员可以看到龙神,并许愿成功 动画的基本属性参数 老样子,先给源码 <!DOCTYPE html> <html lang="en" > <head> <...
  • 在界面设计的领域,也是一样,当你希望用户的注意力从一个点转移到另一点,在这两点之间设计一个迁移的动画是在合适不过的了。动画基本上可以分成以下几类: 平移动画: 渐变动画: 缩放动画: 旋转动画 其他所有的...
  • 本文来自《动画设计·字体特效》,更多文章放在了Github 欢迎交流Star 特效一览 划线动态: 背景高亮: 色块进出: 划线动态 效果图 原理 首先,利用::after::before就可以画出上下两条线,所以只需要一个 ...
  • 动画:用动画给面试官解释 TCP 三次握手过程

    万次阅读 多人点赞 2019-10-12 07:55:38
    来源 | 公众号:小鹿动画学编程 写在前边 TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。 对于这部分掌握以及 TCP 的四次挥手,小鹿将会以...
  • 本篇将续前面几篇基础动画之上,详细介绍Silverlight里提供故事板(StoryBorards)的属性各种不同类型的动画(Animations)的详细知识点,揭晓在Blend下设计动画的内幕故事。 一、故事板(Sto
  • UIView动画事务简介 日常开发中常使用动画,恰当地使用动画有助于提高用户体验。 UIView动画事务提供了大量简单的接口来实现种类繁多的动画效果。 UIView动画事务多用于执行隐式动画:frame:设置视图大小及位置 ...
  • 作者:郭孝星 微博:郭孝星的新浪微博 ... 动画反应了应用组件在空间中的关系、功能以及在整个系统中的趋势。...一 动画设计原则1.1 动画真实地反应现实世界动画应该完整的展现物体的各个真实的特性,譬如优雅、简约
  • HTML5之按钮背景不同动画特效设计

    万次阅读 2016-05-02 22:39:14
    前言今天来继续给大家介绍一下HTML5,讲什么呢,讲讲一组效果非常酷的鼠标滑过按钮背景动画特效,在该特效中,当鼠标滑过按钮时,使用CSS3 animation来动画background-sizebackground-position属性,来实现各种背景...
  • 设计一个android引导页面的动画,最好是透明渐变动画效果,大概样式就像APP微信精选那个引导页面那种样式,求大神帮忙给个Demo!
  • CAGradientLayer 可用来处理颜色渐变,它的渐变色也可以做隐式动画。而 maskView 则是 png 图片透明像素的原理 maskView(maskLayer) 可类比多张png图片的叠加遮罩,原理类似。需要注意的是,maskView 是 IOS8 以上才...
  • 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)补间动画(tweened animation)。逐帧动画的工作原理很...
  • Android材料设计动画之触摸反馈

    千次阅读 2017-03-10 16:35:37
    Android材料设计动画之触摸反馈 定制触摸反馈 前言在Android 5.0版本发布时,所公布的Android材料设计之动画更新幅度很大,有各种各样,各种场景下的动画。动画对于增强用户体验的感受有着超级重要的贡献,为APP...
  • 使用Qt动画框架设计角色的二维动画(二) 接上次的日志。 上次发布demo虽然使用了大量的动画框架、有限状态机框架,但是仍有瑕疵。比如说在用户一直按下按键的时候角色会被“冻”住,但是角色的位置是移动的,这...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 215,864
精华内容 86,345
关键字:

动画设计和影视动画的区别