Android动画
- View Animation 视图动画(Tween Animation 补间动画),只能用来设置View的动画
- Drawable Animation 帧动画(Frame动画),一帧帧地显示资源文件中的Drawable
- Property Animation 属性动画,在android3.0以上的系统才有。这动画可以设置给任何的Object,包括那些还没有渲染到屏幕的view.
为什么要引入属性动画?
- 补间动画只能够作用在View上的
- 补间动画只能够实现移动、缩放、旋转和淡入淡出这四种动画操作,不能改变View的背景等
- 补间动画只是改变了View的显示效果而已,而不会真正去改变View的属性
View Animation 补间动画
视图动画也叫补间动画,指在一个视图容器中执行一些变换。包含有:位置、大小、旋转、透明 补间动画。
一般通过xml实现,不建议是用android代码实现,因为代码实现的可读性比较差。
补间动画的相关类
- AlphaAnimation <alpha>放在res/anim/目录下 透明渐变动画效果
- RotateAnimation <rotate>放在res/anim/目录下 旋转转移动画效果
- ScaleAnimation <scale>放在res/anim/目录下 缩放动画效果
- TranslateAnimation <translate>放在res/anim/目录下 移动动画效果
- AnimationSet <set> 放在res/anim/目录下 持有动画的容器
补间动画之TranslateAnimation使用
实现TranslateAnimation有两种方式,一种是xml配置,一种是纯Java代码实现。
使用java代码实现
// 使用方式一 默认类型是Animation.ABSOLUTE /** * @param fromXDelta x 坐标的起始点值 * @param toXDelta x 坐标的终点值 * @param fromYDelta y 坐标的起始点值 * @param toYDelta y 坐标的终点值 */ translateAnimation = new TranslateAnimation(0,500,0,500); /** * Constructor to use when building a TranslateAnimation from code * * @param fromXType 动画开始前的X坐标类型。取值范围为ABSOLUTE(绝对位置)、RELATIVE_TO_SELF(以自身宽或高为参考)、RELATIVE_TO_PARENT(以父控件宽或高为参考)。 * @param fromXValue 动画开始前的X坐标值。当对应的Type为ABSOLUTE时,表示绝对位置;否则表示相对位置,1.0表示100% * @param toXType 结束后的x坐标类型(如fromXType一样) * @param toXValue 结束后的x坐标值(如fromXType一样) * @param fromYType 动画开始前的Y坐标类型(类型同fromXType)。 * @param fromYValue 动画开始前的Y坐标值(值同fromXValue)。 * @param toYType 动画结束后的Y坐标类型(类型同fromYType)。 * @param toYValue 动画结束后的Y坐标值(值同fromYValue)。 */ // 使用方式 二 自定义各类型,如下是都为Animation.ABSOLUTE时的用法(同一类似效果) // translateAnimation = new TranslateAnimation(Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 500, Animation.ABSOLUTE, 0, Animation.ABSOLUTE, 500); // 使用方式 三 自定义各类型,如下类型为Animation.RELATIVE_TO_PARENT或Animation.RELATIVE_TO_SELF时,后面带的参数值范围就变了。 //translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0, Animation.RELATIVE_TO_PARENT, 1.0f); translateAnimation.setDuration(1000); translateAnimation.setInterpolator(new LinearInterpolator());
使用xml实现
res/anim/anim_translate.xml
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000"> <translate android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="500" android:toYDelta="500" /> <!-- 这种是绝对的类型。 跟如下代码一样的效果。 translateAnimation = new TranslateAnimation(0,500,0,500); --> </set>
animation = AnimationUtils.loadAnimation(this, R.anim.anim_translate);
参考文章
- 《Android 动画Animation简单总结》
- 《补间动画详解四 平移动画TranslateAnimation》
- 《Android 补间动画之平移动画TranslateAnimation》
- 《Android三种动画详解》
历史上的今天
暂无评论...
随机推荐
Android TextView文本颜色线性渐变(包括上下和左右渐变)
前言对于文本简记录文本颜色渐变,方便自己查阅。好记性不如烂笔头正文要用渐变,需要了解一下LinearGradient的各种参数简单介绍LinearGradientLinearGradient的实现有两种。第一种public LinearGradient(float x0, floa...
Android aidl简单使用
前言简单记录一下aidl的使用,方便自己查阅和复习。正文因为客户端和服务端都需要引入相同的aidl的定义,因此这里单独吧aidl文件作为一个lib库。Biu2Aidl库Biu2Aidl是lib库,存放客户端和服务端共同的aidl定义和Constant类。IBook.aidl/Biu2...
JNI学习手册
前言之前初略的学习了一下JNI的使用,也做了对应的笔记。为了方便自己复现,这里就把所有文章整理在一起,方便自己查询。正文JNI之数据类型Java中调到Native方法传递的参数是Java类型,这些参数需要通过Dalvik虚拟机转换为JNI类型。具体请看《JNI之类型介绍》基本数据类型...
Android日志分析笔记
下面整理一下日志分析常用的关键字,包括系统重启(Fatal 、died),异常,应用ANR,闪退等(慢慢整理,不一定全部都有)1、 Fatal 关键字这是可以直接查找系统异常的关键字AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCES...
LayoutInflater之inflate()简单分析
前言简单记录一下Android中LayoutInflater中inflate()的使用以及源码的简单跟踪。记录于此,方便自己查阅。正文LayoutInflater初始化对于LayoutInflater,我们并不陌生,经常使用。//方法1LayoutInflater inflater...
梁实秋:快乐
天下最快乐的事大概莫过于做皇帝。“首出庶物,万国咸宁”。至不济可以生杀予夺,为所欲为。至于后宫粉黛三千,御膳八珍罗列,更是不在话下。清乾隆皇帝,“称八旬之觞,镌十全之宝”,三下江南,附庸风雅。那副志得意满的神情,真是不能不令人兴起“大丈夫当如是也”的感喟。在穷措大眼里,九五之尊,乐不可支。但是试起...