• Android Drawable资源


    Android实现应用d动画效果:比如App第一次打开的开始动画等

    有两种:GIF动画和代码实现。

    第一种:借助于Gif制作工具软件实现。一般是和第三方开源的GifView(https://github.com/Cutta/GifView)控件配合使用。特点是:简单,易上手。

    第二种:借助于Android自带动画类,或者第三方动画框架实现,如nineoldandroids。特点是:灵活性较高,难度较大。

    Android动画类:

    1)视图动画,包括补间动画和逐帧动画,该动画的XML资源文件放在/res/anim/目录下

     //AnimationDrawable 逐帧动画XML资源文件以<animation_list../>元素作为根元素

        <animation_list   android:oneshot="true/false">
            <item/>
            <item/>
             ....
        <animation_list>


     //补间动画的XML资源文件以<set.../>元素作为根元素,该元素内可以指定四个子元素,重要属性Interpolator,

    “插值”,动画过渡的方式。可以在代码中自定义补间动画。

    I)
          <set>    //补间动画xml资源文件
               <alpha/>//透明度
               <scale/>//大小
               <translate/>位置
               <rotate/>旋转
         </set>

    Android的Animation作为补间动画抽象基类,包括四个子类:


              ScaleDrawable是对一个Drawable进行缩放操作,可以根据level属性控制这个drawable的缩放比率,

    也可以设置他在容器     中的对齐方式。在XML资源文件使用scale作为根节点来创建RotateDrawable。
     <scale.../>


              RotateDrawable是对一个Drawable进行旋转操作,可以根据level属性控制这个drawable的旋转角度,

    也可以设置相对于他  所在容器的对齐方式。在XML资源文件中使用rotate作为根节点来定义RotateDrawable。
     <rotate.../>

              AlphaAnimation 透明度改变的动画,根节点<alpha.../>。

              TranslateAnimation 位移变化的动画, <translate.../>。

     Java代码:

           Animation animation=AnimationUtils.loadAnimation(this , R.anim.xxx);加载动画XML资源文件

                 View . startAnimation(animation);在指定的组件View上开始动画

         也可以直接New一个动画类的子类,直接用Java代码实现,不使用XML资源文件

             TranslateAnimation animation=new TranslateAnimation(curX,nextX,curY,nextY);

            View.startAnimation(animation);

    II)

       还可以自定补间动画类,继承Animation类

    2)属性动画,该动画XML资源文件放在/res/animator/目录下

    属性动画是增强版的视图动画,属性动画更加强大,视图动画只能对UI组件执行动画,而属性动画几乎可以对任何

    对象执行动画,可以自定义View组件,可以自定义动画效果,再附加到组件上,就可以得到动画效果了。

    渐变式地更改对象中某个属性的值,从而形成属性动画,可分两步操作:第一步,动画需要计算出某一时刻属性值应该是多少;

    第二步,需要将计算出的属性值赋值给动画的属性。

    定义属性动画的两种使用方式:

    •    使用ValueAnimator 或 ObjectAnimator的静态工厂方法来创建动画。
    •    使用XML资源文件来定义动画

    属性动画的XML资源文件能以下面三个中的任何一个作为根元素:

        <set.../>:可以作为父元素包含这三个根元素,该元素定义的资源代表AnimatorSet对象。

       <objectAnimator.../>:定义ObjectAnimator动画。

        <animator.../>:定义ValueAnimator动画。

     3)Android 5.X 的SVG矢量动画

        SVG最大的优点是放大不会失真,这样就不用为不同分辨率设计多套图标了。

        SVG就是VectorDrawable和AnimatedVectorDrawable两个,VectorDrawable可以创建基于XML的SVG图形,

        AnimatedVectorDrawable用来实现动画效果。

    Ripple效果(点击出现涟漪效果 RippleDrawable)

    android:background="?android:attr/selectableItemBackground"//波纹有波纹

    android:background=”?android:attr/selectableItemBackgroundBorderLess"//波纹无边界

    Ripple效果的XML文件ripple_round.xml

    android:background="@drawable/ripple_round"

    StateListAnimator 在Android 5.X中,系统提供了视图状态改变来说设置一个视图的状态的切换动画

    深入了解参考:http://blog.csdn.net/iispring/article/details/50167405

    http://keeganlee.me/post/android/20150916

  • 相关阅读:
    PyCharm 2017.1.3版本破解
    Python 字典
    Python 列表和元组
    总结2016,展望2017
    使用MATLAB对图像处理的几种方法(下)
    使用MATLAB对图像处理的几种方法(上)
    忍不住想,我为什么要来大城市?
    学习技术的心得
    Net中的常见的关键字
    面向对象的JS(一)
  • 原文地址:https://www.cnblogs.com/feng-ye/p/5750757.html
Copyright © 2020-2023  润新知