Android Drawable资源
Android实现应用d动画效果:比如App第一次打开的开始动画等
有两种:GIF动画和代码实现。
第一种:借助于Gif制作工具软件实现。一般是和第三方开源的GifView(https://github.com/Cutta/GifView)控件配合使用。特点是:简单,易上手。
第二种:借助于Android自带动画类,或者第三方动画框架实现,如nineoldandroids。特点是:灵活性较高,难度较大。
Android动画类:
- 视图动画(View Animation)
- 属性动画(Property Animation)
- 布局容器动画(向容器添加删除控件的过渡动画,http://blog.csdn.net/feiduclear_up/article/details/45919613)
- Activity切换动画
- SVG矢量动画
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资源的更多相关文章
- android drawable资源调用使用心得
1. 调用顺序 android 调用应用图片资源时,会优先选择当前手机屏幕dpi对应的的文件夹(如drawable-ldpi, drawable-mdpi, drawable-hdpi, drawab ...
- android中常见的Drawable资源有哪些?
Drawable资源是安卓应用中最常见的一种资源,比如图片等,因此,对于初学者而言,必须掌握drawable资源相关应用. 今天在网上刚好看到了一篇介绍android Drawable资源的文章,分享 ...
- 34.Android之资源文件res里drawable学习
我们经常看到android工程资源文件res下drawable如ldpi.mdpi.hdpi.xhdpi.xxhdpi文件,今天我们学习了解下. (1)drawable-hdpi里面存放高分辨率的图片 ...
- Android中的Drawable资源
在Android应用中,常常会用到Drawable资源,比如图片资源等,在Android开发中我们是用Drawable类来Drawable类型资源的. Drawable资源一般存储在应用程序目录的\r ...
- Android 程序drawable资源保存到data目录
今天做了个小功能,就是把我们程序Drawable里面的图片保存到data目录下面,然后另外一个程序需要读取data目录里面保存的图片.涉及了data目录读写.这功能看上去挺简单,不过实际做的时候还是遇 ...
- [转]android中drawable资源的解释及例子
原文链接: http://blog.csdn.net/wode_dream/article/details/38584693 文章中的内容参考Dev Guide中的Drawable R ...
- Android使用Drawable资源之使用ClipDrawable资源 实现进入条
以前我自定义的进度条(就是咱们现在工程中用的)是从android的源码中扒出来的一个XML,然后把里面的图片给替换了.一直不知道它的具体原理是什么. 今天得空研究了一下,发现它的原理其实就是用的and ...
- Android 寻找Drawable资源的流程
寻找设备对应Drawable资源时,会先在设备对象dpi的drawable文件夹下寻找,如果没找到,会上溯到更高一级dpi文件夹下寻找,上溯最高两级.如果还是没有找到,会寻找noDensity文件夹下 ...
- Android drawable的自动缩放
今天在写程序时发现,一张图片被自动放大了,后来发现,这张图片放在了drawable-zh文件夹下,这个文件夹没有指定屏幕密度!于是将drawable-zh改为drawable-zh-nodpi,问题解 ...
随机推荐
- Java 常用排序算法/程序员必须掌握的 8大排序算法
Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...
- VC++ 利用MAPI实现在程序中调用默认的电子邮件程序发送EMAIL(可以添加附件)。
1.利用ShellExecute 可以条用默认邮件客户端,但不能发送带附件的邮件 mailto:用户账号@邮件服务器地址?subject=邮件主题&body=邮件正文 如:ShellExe ...
- 改变HTML
改变HTML 1.改变HTML输出流 JavaScript可以创建动态的HTML内容.(注意:不要在加载文档后使用document.write(),这会覆盖文档.) <%@ page langu ...
- BZOJ 3534 重建
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3534 题意:给定一个无向图,每条边有选择概率P:求选出的边恰是一棵生成树的概率. 思路: ...
- VMware ESXI5.0的安装配置 zz
http://www.hotxf.com/thread-297-1-1.html 1, Vmware ESXI 光盘一张文件大小290M,本教程是以 5.0为案例. 2, 所需要安装的操作 ...
- c++ socket 客户端库 socks5 客户端 RudeSocket™ Open Source C++ Socket Library
介绍 一个c++ socket 客户端库 http://www.rudeserver.com/socket/index.html The RudeSocket™ Open Source C++ Soc ...
- Cheatsheet: 2014 04.01 ~ 04.30
Java 115 Java Interview Questions and Answers – The ULTIMATE List 3 Good Reasons to Avoid Arrays in ...
- CANopen笔记2
PDO 过程数据对象用于在节点之间传送过程数据,如I/O模块I/O状态读取和设定,模拟量采集和模拟量输出等等,协议考虑从机硬件限制最多支持4组PDO,每组包含一个RPDO和一个TPDO.The Gol ...
- Beaglebone Black–GPIO 开关 LED(三极管与继电器实验)
上一篇,用 GPIO 直接供电给 LED,用高低电平作开关,不靠谱.GPIO 是信号用的,不是当电源用的.而且,一个 GPIO 只能给可怜的 5mA 左右,取多了会烧(我没烧过不知道是不是真的会烧,但 ...
- EF实体框架常见问题
1,无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“System.Data.Entity.SqlServ ...