Animation分为 Tween Animation(补间动画)、Frame Animation (帧动画)、以及Property Animation(属性动画)。 1.Tween Animation(补间动画)SDK中称作 View Animation:给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关 键帧间渐变。只能改变对象绘制的位置,而不能改变一些属性,如点击事件还是在原来的位置才有效应。 XML文件中必须有一个根元素,可以是<alpha>渐变动画、<scale>缩放动画、<translate>位移动画、<rotate>旋转动画中的任意 一个,也可以是<set>来管理一个由前面几个元素组成的动画集合。
ImageView spaceshipImage = (ImageView)findViewById(R.id.spaceshipImage); Animation hyperspaceJumpAnimation=AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump); spaceshipImage.startAnimation(hyperspaceJumpAnimation);
2.Frame Animation (帧动画)SDK中称作Drawable Animation:Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。Frame动画可以被定义在XML文件中,也可以完全编码实现。 在XML中的定义方式如下:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> <item android:drawable="@drawable/rocket_thrust1" android:duration="200" /> <item android:drawable="@drawable/rocket_thrust2" android:duration="200" /> <item android:drawable="@drawable/rocket_thrust3" android:duration="200" /></animation-list>
Android:onshot如果定义为true的话,此动画只会执行一次,如果为false则一直循环。 imageView = (ImageView) findViewById(R.id.imageView1); imageView.setBackgroundResource(R.drawable.drawable_anim); anim = (AnimationDrawable) imageView.getBackground(); anim.start();
注:不要在OnCreat()方法中调用Star();因为Windows对象还没有初始化,可以在onWindowFocusChanged方法中Star(); 3.Property Animation(属性动画):Android 3.0 引进的,可以真正改变空间的属性。 API含义; Duration:动画的持续时间 Repeat count and behavior:动画重复的次数和模式 Time interpolation:动画变化速率 Frame refreash delay:动画刷新频率 TypeEvaluator 类型估值,主要用于设置动画操作属性的值 Animation sets:动画集合
Android 的几种Animation
最新推荐文章于 2022-08-08 14:25:10 发布