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

Android Drawable资源的更多相关文章

  1. android drawable资源调用使用心得

    1. 调用顺序 android 调用应用图片资源时,会优先选择当前手机屏幕dpi对应的的文件夹(如drawable-ldpi, drawable-mdpi, drawable-hdpi, drawab ...

  2. android中常见的Drawable资源有哪些?

    Drawable资源是安卓应用中最常见的一种资源,比如图片等,因此,对于初学者而言,必须掌握drawable资源相关应用. 今天在网上刚好看到了一篇介绍android Drawable资源的文章,分享 ...

  3. 34.Android之资源文件res里drawable学习

    我们经常看到android工程资源文件res下drawable如ldpi.mdpi.hdpi.xhdpi.xxhdpi文件,今天我们学习了解下. (1)drawable-hdpi里面存放高分辨率的图片 ...

  4. Android中的Drawable资源

    在Android应用中,常常会用到Drawable资源,比如图片资源等,在Android开发中我们是用Drawable类来Drawable类型资源的. Drawable资源一般存储在应用程序目录的\r ...

  5. Android 程序drawable资源保存到data目录

    今天做了个小功能,就是把我们程序Drawable里面的图片保存到data目录下面,然后另外一个程序需要读取data目录里面保存的图片.涉及了data目录读写.这功能看上去挺简单,不过实际做的时候还是遇 ...

  6. [转]android中drawable资源的解释及例子

    原文链接:         http://blog.csdn.net/wode_dream/article/details/38584693 文章中的内容参考Dev Guide中的Drawable R ...

  7. Android使用Drawable资源之使用ClipDrawable资源 实现进入条

    以前我自定义的进度条(就是咱们现在工程中用的)是从android的源码中扒出来的一个XML,然后把里面的图片给替换了.一直不知道它的具体原理是什么. 今天得空研究了一下,发现它的原理其实就是用的and ...

  8. Android 寻找Drawable资源的流程

    寻找设备对应Drawable资源时,会先在设备对象dpi的drawable文件夹下寻找,如果没找到,会上溯到更高一级dpi文件夹下寻找,上溯最高两级.如果还是没有找到,会寻找noDensity文件夹下 ...

  9. Android drawable的自动缩放

    今天在写程序时发现,一张图片被自动放大了,后来发现,这张图片放在了drawable-zh文件夹下,这个文件夹没有指定屏幕密度!于是将drawable-zh改为drawable-zh-nodpi,问题解 ...

随机推荐

  1. RabbitMQ术语

    工作队列:Working Queue 分配:多个客户端接收同一个Queue,如何做负载均衡(分配).     Round-robin分配:多个接收端接收同一个Queue时,采用了Round-robin ...

  2. 快速编译system.img、userdata.img、boot.img的方法

    快速编译system.img和boot.img的方法 快速编译system.img,可以使用这个命令: #make systemimage 快速编译boot.img,可以使用以下命令: #make b ...

  3. BZOJ 1797 最小割

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1797 题意:给出一个有向图,每条边有流量,给出源点汇点s.t.对于每条边,询问:(1)是 ...

  4. 25 个增强iOS应用程序性能的提示和技巧 应用程序性能的提示和技巧

    初级 在开发过程中,下面这些初级技巧需要时刻注意: 1.使用ARC进行内存管理2.在适当的情况下使用reuseIdentifier3.尽可能将View设置为不透明(Opaque)4.避免臃肿的XIBs ...

  5. Cheatsheet: 2014 11.01 ~ 11.30

    Mobile Android SDK: Working with Picasso View Debugging in Xcode 6 5 Common C# tasks in Apple Swift ...

  6. __declspec(dllexport) & __declspec(dllimport)

    __declspec(dllexport) 声明一个导出函数,是说这个函数要从本DLL导出.我要给别人用.一般用于dll中 省掉在DEF文件中手工定义导出哪些函数的一个方法.当然,如果你的DLL里全是 ...

  7. jquery之event与originalEvent的关系、event事件对象用法浅析

    在jquery中,最终传入事件处理程序的 event 其实已经被 jQuery 做过标准化处理, 其原有的事件对象则被保存于 event 对象的 originalEvent 属性之中, 每个 even ...

  8. SpringMVC 服务器端验证

    1.导入JSR303验证类库Jar包2.在MVC的配置文件中添加<mvc:annotation-driven/>的配置3.在MVC的配置文件中添加验证器的配置4.在接收表单数据的类中添加验 ...

  9. sql默认启动密码

    首先启动sqlplus输入用户名:sqlplus / as sysdba密码空缺如果用户被锁定,记得加上SQL> alter user dbsnmp account unlock; User a ...

  10. 《Linux内核设计的艺术》学习笔记(六)执行setup.s

    参考资料 1. 8259A可编程中断控制器 jmpi , SETUPSEG // 0x90200 到这里,bootsect.s的执行就算结束了.控制权转移到了setup.s文件的手中. setup程序 ...