精华内容
下载资源
问答
  • Android动画

    万次阅读 2019-11-24 19:11:58
    这篇博客主要总结一下自己在项目...其实,对于Android动画的总结,这是几个月前就应该写完的一篇博客,然而那段时间工作实在是太忙了,没有及时去总结。于是,今天把这篇博客提上来,总结一下Android中动画的一些使用。

            这篇博客主要总结一下自己在项目中对动画的一些使用。我写博客,其实更多的是总结自己在工作中用到的一些知识。比如某一段时间一个知识点相关的技术用的比较多,那我会总结一下。其实,对于Android动画的总结,这是几个月前就应该写完的一篇博客,然而那段时间工作实在是太忙了,没有及时去总结。于是,今天把这篇博客提上来,总结一下Android中动画的一些使用。

    一、前言

            在总结动画的使用前,我们先想想为我们的app添加动画的目的是什么?毫无疑问,为APP添加动画,会使我们的app界面更加美丽,效果更加华丽,这样也能吸引更多的用户使用我们的app。就好比自己的亲儿子或者亲闺女,我们总想把她(他)打扮的漂亮点。但是,是不是动画一定是好的呢?或者说,动画越多越好吗?当然也不是,其实在我们的app中添加动画,也会带来一些问题,最主要的就是耗电量增加。毫无疑问,华丽的动画效果会带来大量的电量消耗。因此,并不是说app都应该添加很多绚丽的动画,而应适度的添加。

    二、动画

            这个小节,按照分类大体总结一下Android常用动画的基本使用方法。作为Android开发,或者正在学习Android的朋友,大家对于Android动画的分类肯定不陌生。Android动画包括补间动画,帧动画,属性动画。

    1、补间动画

            首先,简单说一下什么是补间动画。补间动画是使一个物体由一个状态转变为另一种状态的动画。通俗来讲,定义一个补间动画,我们只需要给定物体的初始属性和终止属性,而中间的变化过程由补间动画自己实现。那么,这些状态包括什么呢?相信大家都知道,包括旋转,缩放,位置,透明度。

            我们看一下补间动画的几个子类:AlphaAnimation,RotateAnimation,ScaleAnimation,TranslateAnimation,分别对应透明度动画,旋转动画,缩放动画,平移动画。此外,还包括AnimationSet,这是Android提供的把多个补间动画组合为一个动画的机制,我们后面会讲。如下图所示:

    (1)AlphaAnimation

            AlphaAnimation是控制物体透明度变化的动画,它的使用很简单,我们简单看一下AlphaAnimation的部分源码,如下所示。使用AlphaAnimation,可以使用Java代码,也可以使用xml代码,我们只看Java中使用的构造函数。需要两个变量:fromAlpha和toAlpha,也就是初始的alpha值和终止的alpha值。通过注释,我们可以看到alpha值的范围是0.0-1.0。

    public class AlphaAnimation extends Animation {
        private float mFromAlpha;
        private float mToAlpha;
        
        /**
         * Constructor to use when building an AlphaAnimation from code
         * 
         * @param fromAlpha Starting alpha value for the animation, where 1.0 means
         *        fully opaque and 0.0 means fully transparent.
         * @param toAlpha Ending alpha value for the animation.
         */
        public AlphaAnimation(float fromAlpha, float toAlpha) {
            mFromAlpha = fromAlpha;
            mToAlpha = toAlpha;
        }
    }

            看过上面的构造函数,我们也尝试着去写一个简单的AlphaAnimation,动画有很多属性我们可以设置,例如时间,重复次数,重复模式等,我们在这里只设置一个持续时间:

        private void initAlpha(){
            alphaAnimation = new AlphaAnimation(1.0f,0.2f);
            alphaAnimation.setDuration(2000);
            imageView.startAnimation(alphaAnimation);
        }

    (2)ScaleAnimation

            缩放动画是对物体进行缩放的补间动画,我们看一下ScaleAnimation的源码,看一下其构造函数。可以看到,比透明度动画的参数要多。不难理解,因为缩放涉及到x方向和y方向,因此需要传入四个值:

        public ScaleAnimation(float fromX, float toX, float fromY, float toY) {
            mResources = null;
            mFromX = fromX;
            mToX = toX;
            mFromY = fromY;
            mToY = toY;
            mPivotX = 0;
            mPivotY = 0;
        }

            我们尝试实现一个简单的缩放动画:

    private void initScale(){
            animation = new ScaleAnimation(1.0f,0.5f,1.0f,0.5f);
            animation.setDuration(2000);
            imageView.startAnimation(animation);
        }

    (3)TranslateAnimation

            TranslateAnimation是实现物体平移的动画,我们还是简单看一下其构造函数,也是四个值。因为涉及到x和y两个方向的平移:

    private void initTrans(){
            animation = new TranslateAnimation(0,180,0,360);
            animation.setDuration(2000);
            imageView.startAnimation(animation);
        }

            下面,我们实现一个简单的平移动画:

        private void initTrans(){
            animation = new TranslateAnimation(0,180,0,360);
            animation.setDuration(2000);
            imageView.startAnimation(animation);
        }

     (4)RotateAnimation

            RotateAnimation是控制物体旋转的动画。我们都知道,旋转一个物体,需要有一个参考点。

    • RotateAnimation(float, float):

            让物体围绕(0,0)从一个角度旋转到另一个角度。这里的(0, 0)其实就是物体的左上角,构造参数如下:

    public RotateAnimation(float fromDegrees, float toDegrees) {
            mFromDegrees = fromDegrees;
            mToDegrees = toDegrees;
            mPivotX = 0.0f;
            mPivotY = 0.0f;
        }

            我们实现一个这样的旋转动画,也就是让物体围绕自己的左上角顶点旋转:

    private void initRotate(){
            animation = new RotateAnimation(0,360);
            animation.setDuration(2000);
            imageView.startAnimation(animation);
        }
    • RotateAnimation(float, float, float, float):

            除了传入初始的角度和终止的角度外,还传入了一对坐标,也就是旋转参考点的坐标:

    •     public RotateAnimation(float fromDegrees, float toDegrees, float pivotX, float pivotY) {
              mFromDegrees = fromDegrees;
              mToDegrees = toDegrees;
      
              mPivotXType = ABSOLUTE;
              mPivotYType = ABSOLUTE;
              mPivotXValue = pivotX;
              mPivotYValue = pivotY;
              initializePivotPoint();
          }

      我们实现一个让物体围绕自己的中心点旋转的动画:

    • private void initRotate(){
              animation = new RotateAnimation(0,360,imageView.getWidth()/2,imageView.getHeight()/2);
              animation.setDuration(2000);
              imageView.startAnimation(animation);
          }

       

    展开全文
  • Android 动画

    千次阅读 2018-04-02 10:02:20
    博客收录: Android自定义控件三部曲文章索引 Android 动画基础知识学习(上) Android 动画基础知识学习(下) Android高级动画 Android应用开发之所有动画使用详解
    展开全文
  • Android动画合集

    千次阅读 2016-04-20 11:28:21
    android动画
    1. Android动画实现绘制原理
      http://www.kutear.com/post/android/2016-10-05-android_animation_principle
    2. 动画及其他学习博客
      http://www.cnblogs.com/whoislcj/p/5738478.html
      http://mp.weixin.qq.com/s?__biz=MzI4MTQyNDg3Mg==&mid=2247483687&idx=1&sn=964ec9f4c681cd6bdade8b65d7399222#rd
      http://www.jianshu.com/p/280bb59f7752
      http://www.jianshu.com/users/0965cf464312/latest_articles
      Android基础动画和属性动画
      http://blog.csdn.net/linglongxin24/article/details/53068940
    3. Android动画之translate(位移动画)
      http://www.cnblogs.com/bavariama/archive/2013/01/29/2881225.html
    4. 模仿 readme.io 的登陆页面动画
      https://github.com/binglingziyu/OwlView
    5. 一款加载动画,不同的物体加速下落砸到了文字上,文字逞阻尼效果,向下弯曲并像橡皮筋一样弹动回去的效果
      https://github.com/Huyamin150/-dampView-springingView
    6. 结合 motion 和 Transition 实现共享元素的酷炫动画
      https://github.com/hehonghui/android-tech-frontier/blob/master/issue-43/结合motion和Transition实现共享元素的酷炫动画.md
    7. FragmentAnimation
      https://github.com/kakajika/FragmentAnimations
    8. google now的动画样式
      https://github.com/zagum/SpeechRecognitionView
    9. 切换页面的圆形动画效果
      https://github.com/SpikeKing/wcl-circle-reveal-demo
    10. 教你实现别人家的动画3(淘宝,简书动画效果)
      http://www.jianshu.com/p/be2d7f725fcc
    11. Wow, Android View Animation!
      https://github.com/hujiaweibujidao/wava
    12. 高效动画首选Drawable!码哥又调皮了
      http://www.jianshu.com/p/6e0ac5af4e8b
    13. 仿Slack的Loading动画
      https://github.com/JeasonWong/SlackLoadingView
    14. Android布局动画之animateLayoutChanges与LayoutTransition
      http://blog.csdn.net/javazejian/article/details/52571779
    15. 模拟自然动画的精髓——TimeInterpolator与TypeEvaluator
      http://blog.csdn.net/eclipsexys/article/details/52693324
    16. 我们是如何实现漂亮动画的-列车飞驰的加载动画
      http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0918/6618.html
    17. 贝塞尔曲线之购物车动画效果
      http://gold.xitu.io/post/57e8d26d67f3560057a37022
    18. A download progressbar with cool animation
      https://github.com/dudu90/FreshDownloadView
    19. 通过 AnimateVectoreDrawer 实现的一些动画效果,看看代码,有没有新灵感
      https://github.com/ghuiii/AnimateVectorDrawableDEMO
    20. 属性动画——数字动画
      http://www.jianshu.com/p/b33326ce8a27
    21. 仿微信清理内存图表动画(解决surfaceView闪烁问题)
      http://blog.csdn.net/qq_25412055/article/details/52373218
    22. 十分钟搞定酷炫动画
      http://www.jianshu.com/users/975e915e131b/latest_articles
    23. Android仿“守望先锋”加载动画
      http://blog.csdn.net/a396901990/article/details/52862077
    24. Android自定义水波纹动画Layout
      http://blog.csdn.net/tgbus18990140382/article/details/53177611
    展开全文
  • Android动画详解

    千次阅读 2018-09-26 17:51:12
    Android动画分为视图动画(View Animation)和属性动画(Property Animation),视图动画分为补间动画(Tween Animation)和逐帧动画(Frame Animation)。本次主要讲解Android 视图动画的使用。 1.视图动画 视图...

    前言

    Android动画分为视图动画(View Animation)和属性动画(Property Animation),视图动画分为补间动画(Tween Animation)和逐帧动画(Frame Animation)。本次主要讲解Android 视图动画的使用。

    1.视图动画

    视图动画主要有5中类型:

    scale:动画缩放

    alpha:渐变透明度

    rotate:动画旋转

    translate:位置变换

    set:上述四种集合

    1.1 使用方式

       视图动画我们可以建xml文件和Java代码两种方式来实现动画效果,scaleAnimation和scale标签对应,属性都一致,就像TextView标签,可以在xml中使用text:设置文字,也可以在java中使用textview.settext设置文字,不过对动画而言xml方式复用性更高,所以我们来讲解标签使用方式。

      首先我们在res目录下新建anim目录,在anim下新建xml文件,比如为scale.xml,那么我们可以在java文件中通过下列代码,来使用这个动画

    Animation animation = AnimationUtils.loadAnimation(this,R.anim.scale);
    textView.startAnimation(animation);
    

    在对标签逐个说明之前,我们首先来看一下这些标签的公共属性。

    属性名 意义
    android:duration 动画持续的时间,单位是毫秒
    android:fillAfter 动画是否保持结束时的状态,布尔值
    android:fillBefore 动画结束时是否还原到初始状态,布尔值
    android:fillEnabled 与fillBefore相同
    android:repeatCount 动画的重复次数,infinitte为无线循环
    android:repeatMode 动画的重复类型,若为reverse则倒序回放,若为restart则重新开始
    android:interpolator 动画插值器(后面博客会讲解)

    1.2 scale标签

    scale标签用于动画的缩放,scale标签属性如下:

    属性名 意义
    android:fromXScale 动画开始时在X轴上的缩放值,浮点值
    android:toXScale 动画结束时在X轴上的缩放值,浮点值
    android:fromYScale 动画开始时在Y轴上的缩放值,浮点值
    android:toYScale 动画结束时在Y轴上的缩放值,浮点值
    android:pivotX 缩放起点X轴坐标
    android:pivotY 缩放起点Y轴坐标

    android:pivotX和android:pivotY值的属性有三种,比如10,10%,10%p

    当为10时起点就是  原点+10px

    当为10%时起点就是 当前控件左上角坐标+自己宽度 * 10%

    当为10%p时起点就是 当前控件左上角坐标+父控件宽度 * 10%

    1.3 alpha标签

    alpha标签可以实现透明度的渐变,alpha标签属性如下:

    属性名 意义
    android:fromAlpha 动画开始时的透明度,最小值0.0表示全透明,最大值1.0表示完全不透明
    android:toAlpha 动画结束时的透明度,最小值为0.0表示全透明,最大值1.0表示完全不透明

    1.4 rotate 标签

    rotate标签可以实现旋转效果,rotate标签属性如下:

    属性名 意义
    android:fromDegrees 动画开始旋转时的角度,正数代表顺时针,负数代表逆时针
    android:toDegrees 动画结束旋转时的角度,正数代表顺时针,负数代表逆时针
    android:pivotX 旋转中心X轴的坐标,数值和scale中的类似
    android:pivoty 旋转中心Y轴的坐标,数值和scale中的类似

    1.5 translate 标签

    translate标签可以实现移动效果,translate属性标签如下:

    属性名

    意义

    android:fromXDelta 起始点X轴的坐标数值和pivotx类似
    android:fromYDelta 起始点Y轴的坐标数值和pivoty类似
    android:toXDelta 终点X轴坐标
    android:toYDelta 终点Y轴坐标

    1.6 set 标签

    set标签就是一个容易类,可以放上述标签集合,从而达到动画效果的组合

    1.7 后续说明

    java代码方式个人不太推荐使用,所以在此处不讲解了,因为是动画多以也无法放截图演示,多多见谅,后续会更新Android 属性和动画插值器的使用。

     

    展开全文
  • Android动画之旅-Android动画基本介绍

    千次阅读 2016-04-13 17:18:22
    还没有看的猛戳这里:Android动画之旅一开篇动画简介 本篇博客,将和大家一起来分析Android中的四大动画,准备好了吗?GO~ GO~ GO~ Android动画大致可以分为以下四类: (1)逐帧动画(Frame Animation) (2)补间...
  • Android 动画:手把手教你使用 补间动画 (视图动画)

    万次阅读 多人点赞 2017-06-01 08:21:22
    本文将详细介绍 Android 动画中 补间动画的原理 & 使用 学习Android 动画最好先了解:自定义View的原理,请参考我写的文章: (1)自定义View基础 - 最易懂的自定义View原理系列 (2)自定义View Meas
  • Android动画总结

    千次阅读 2019-08-08 15:26:31
    Android动画之帧动画 Android动画之补间动画 Android动画之属性动画 Android 中的动画可以分为以下几类: 1.帧动画:就是让一系列的静态图片依次播放,实现动画。 ( 用于生成连续的Gif效果图。) 2.补间动画:指定...
  • Android动画简析

    千次阅读 2020-02-11 21:22:57
    Android动画可以分为三种: View动画,帧动画和属性动画。 其实帧动画也属于View动画,只不过它的平移,旋转等常用的View动画在表现上略有不同而已。View动画通过对场景里的对象不断做图像变换(平移,缩放,旋转...
  • Android动画之视图动画和属性动画

    千次阅读 2016-05-13 16:19:37
    Android 动画分为两大类,分别是视图动画(View Animation)和属性动画(Property Animation)。对于这两种动画,都能够使用xml和代码的形式定义动画。View Animation视图动画Android最基础的动画,在API 1中就...
  • Android动画之布局动画

    千次阅读 2016-05-13 16:22:10
    Android动画之布局动画布局动画是针对于ViewGroup使用的,我们直接上效果,通过效果分析进行实现。首先我们分析一下效果图,总共可分为两种, - 在我们的界面初始化显示时,会垂直显示一条垂直的按钮,他们会从右边...
  • Android 动画之集合动画AnimatorSet

    万次阅读 2016-11-10 09:33:44
    Android 动画之属性动画ObjectAnimator视图动画(View Animation)和属性动画(Property Animation)他们分别继承于Animation和Animator两种不同的抽象类。所以从根本上也将他们做了不同类型的区分。View
  • Android基础之Android动画

    千次阅读 2015-09-15 11:34:53
    Android基础之Android动画简介绚丽的app应用离不开动画的支持,所以android系统也给我们提供了动画工具类。Android系统中的动画有Frame Animation(帧动画)、Tween Animation(补间动画)以及3.0以后增加的Property...
  • Android动画效果集合开源APP(BaseAnimation1.3)程序源码

    千次下载 热门讨论 2014-02-10 20:31:35
    BaseAnimation1.3版本增加如下动画 1.Splash增加2个动画 2.高仿动画效果增加10个 3.ListView集合增加15个 4.自定义控件集合增加17个 5.页面滑动增加4个 共增加48个动画效果 下载app源码的朋友需要把 BAnim ...
  • Android动画之图片循环动画

    千次阅读 2016-04-29 10:37:18
    Android动画之图片循环动画
  • Android 动画总结

    千次阅读 2016-10-19 13:49:13
    Android 动画总结项目中用到动画的地方也比较多,对于动画总的概念比较笼统。没有一个宏观体系上的认识。其实说实话,自己也没有对所有的动画都使用过一遍,但是还是有必要总结一下动画的知识。动画分类Android提供...
  • 初始Android动画

    千次阅读 2016-12-04 19:20:19
    初始Android动画  在Android开发过程中,为了提高美感、用户体验,动画是必不可少的一部分。  本篇主要说一下动画的分类:  1、View Animation 视图动画,又叫TweenAnimation,只作用在视图上面。它包括四种类型...
  • Android动画:这是一份全面 & 详细的动画使用攻略

    万次阅读 多人点赞 2018-04-09 09:09:23
    本文将献上一份Android动画的全面介绍攻略,包括动画的种类、使用、原理等,能让你更好地掌握动画 从而实现更加复杂的动画效果 目录 1. 动画类型 Android动画分为两大类:视图动画 & 属...
  • Android动画深入分析

    千次阅读 2016-10-02 23:09:54
    动画分类Android动画可以分3种:View动画,帧动画和属性动画;属性动画为API11的新特性,在低版本是无法直接使用属性动画的,但可以用nineoldAndroids来实现(但是本质还是viiew动画)。学习本篇内容主要掌握以下...
  • Android 动画技术

    千次阅读 2015-03-10 10:32:28
    关于android动画主要有三种:补间动画,逐帧动画和属性动画(android3.0以后引入)详细了解动画的基本...博文主要对android动画在项目中开发问题及解决办法列举如下:  1、属性动画是在android3.0后引入的。据工作
  • Android动画集合开源APP

    千次下载 热门讨论 2014-01-13 22:56:25
    BaseAnimation,如果有新版本会自动提醒大家更新,也希望大家多多贡献自己的动画xml文件或者其他源码,一起来打造这个开源的app 博客地址:http://blog.csdn.net/duguang77/article/details/18230867
  • Android动画之translate(位移动画)

    千次阅读 2016-06-21 11:52:15
    Android动画之translate(位移动画)
  • Android Animator(Android动画

    千次阅读 2016-09-20 10:59:49
    Android动画分为两类: 1.View Animation(视图动画,在api1引入)View Animation又分为两类:Frame animation(幁动画) 和Tween animation (补间动画) 2.Property Animator(属性动画,在api11引入)
  • Android动画实战-仿简聊App动画菜单

    千次阅读 热门讨论 2016-04-14 16:40:34
    还没有浏览的童靴看这里:Android动画之旅一Android动画基本介绍 本篇博客,我将和大家一起使用Android动画来实现一个简单的实例:仿简聊App动画菜单。其实在好多App中都有使用了该动画的菜单。好啦,开始我们今天的...
  • Android动画之AlphaAnimation

    千次阅读 2016-12-09 18:06:03
    1.Android动画2透明度动画代码实现(1)在res目录下新建文件夹anim,存放动画资源 alpha_animation.xml<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="5000" android:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,736
精华内容 21,094
关键字:

android动画