动画效果编程基础:
1.动画类型
在android中的动画由四种类型组成:
(1)XML中
alpha
|
渐变透明度动画效果
|
scale
|
渐变尺寸伸缩动画效果
|
translate
|
画面转换位置移动动画效果
|
rotate
|
画面转移旋转动画效果
|
(2)JavaCode中
AlphaAnimation
|
渐变透明度动画效果
|
ScaleAnimation
|
渐变尺寸伸缩动画效果
|
TranslateAnimation
|
画面转换位置移动动画效果
|
RotateAnimation
|
画面转移旋转动画效果
|
2.动画效果的定义方法
android动画效果,可以定义在xml文件,也可以定义在java代码中,实现效果是一样的。
(1)在xml中使用方法
①
打开Eclipse
,新建
Android
工程
②
在res
目录中新建
anim
文件夹
③
在anim
目录中新建一个
myanim.xml(
注意文件名小写
)
④
加入XML
的动画代码(具体内容看后面)
<?xml version=
"1.0"
encoding=
"utf-8"
?>
|
(2)java代码中定义方法
private
Animation myAnimation_Alpha;
|
private
Animation myAnimation_Scale;
|
private
Animation myAnimation_Translate;
|
private
Animation myAnimation_Rotate;
|
myAnimation_Alpha=
new
AlphaAnimation(0.1f, 1.0f);
|
myAnimation_Scale =
new
ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
|
myAnimation_Translate=
new
TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
|
myAnimation_Rotate=
new
RotateAnimation(0.0f, +350.0f, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
|
3.使用动画效果
(1)使用Xml中动画效果
public
static
Animation loadAnimation (Context context,
int
id)
|
myAnimation= AnimationUtils.loadAnimation(
this
,R.anim.my_action);
|
(2)如果是代码中定义动画效果,就直接调用就行
使用从View
父类继承过来的方法
startAnimation
()来为
View
或是子类
View
等等添加一个动画效果
public
void
startAnimation (Animation animation)
|
附录:
1.XML定义方法中各个参数属性:
Tween Animation共同的节点属性
表一
|
属性[类型] |
功能 |
|
Duration[long] |
属性为动画持续时间 |
时间以毫秒为单位 |
fillAfter [boolean] |
当设置为true ,该动画转化在动画结束后被应用 |
fillBefore[boolean] |
当设置为true ,该动画转化在动画开始前被应用 |
interpolator
|
指定一个动画的插入器 |
有一些常见的插入器
accelerate_decelerate_interpolator
加速-减速 动画插入器
accelerate_interpolator
加速-动画插入器
decelerate_interpolator
减速- 动画插入器
其他的属于特定的动画效果 |
repeatCount[int] |
动画的重复次数 |
|
RepeatMode[int] |
定义重复的行为 |
1:重新开始 2:plays backward |
startOffset[long] |
动画之间的时间间隔,从上次动画停多少时间开始执行下个动画 |
zAdjustment[int] |
定义动画的Z Order的改变 |
0:保持Z Order不变
1:保持在最上层
-1:保持在最下层 |
4种类型各自特有的节点元素:
<alpha>
表二
|
XML节点 |
功能说明 |
alpha |
渐变透明度动画效果 |
<alpha
android:fromAlpha=”0.1″
android:toAlpha=”1.0″
android:duration=”3000″ /> |
fromAlpha |
属性为动画起始时透明度
|
0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字 |
toAlpha |
属性为动画结束时透明度 |
<scale>
表三
|
scale |
渐变尺寸伸缩动画效果 |
<scale
android:interpolator= “@android:anim/accelerate_decelerate_interpolator”
android:fromXScale=”0.0″
android:toXScale=”1.4″
android:fromYScale=”0.0″
android:toYScale=”1.4″
android:pivotX=”50%”
android:pivotY=”50%”
android:fillAfter=”false”
android:startOffset=“700”
android:duration=”700″
android:repeatCount=”10″ /> |
fromXScale[float] fromYScale[float] |
为动画起始时,X、Y坐标上的伸缩尺寸 |
0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大 |
toXScale [float]
toYScale[float] |
为动画结束时,X、Y坐标上的伸缩尺寸 |
pivotX[float]
pivotY[float] |
为动画相对于物件的X、Y坐标的开始位置 |
属性值说明:从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置 |
<translate>
表四
|
translate |
画面转换位置移动动画效果 |
<translate
android:fromXDelta=”30″
android:toXDelta=”-80″
android:fromYDelta=”30″
android:toYDelta=”300″
android:duration=”2000″ /> |
fromXDelta
toXDelta |
为动画、结束起始时 X坐标上的位置 |
|
fromYDelta
toYDelta |
为动画、结束起始时 Y坐标上的位置 |
<rotate>
表五
|
rotate |
画面转移旋转动画效果 |
<rotate
android:interpolator=”@android:anim/accelerate_decelerate_interpolator”
android:fromDegrees=”0″
android:toDegrees=”+350″
android:pivotX=”50%”
android:pivotY=”50%”
android:duration=”3000″ /> |
fromDegrees |
为动画起始时物件的角度 |
说明
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转) |
toDegrees |
属性为动画结束时物件旋转的角度 可以大于360度 |
pivotX
pivotY |
为动画相对于物件的X、Y坐标的开始位 |
说明:以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置 |
2.Android SDK动画类 Animation
Tween Animation由4种类型:alpha、scale、translate、roate,在Android
SDK中提供了相应的类,Animation类派生出了AlphaAnimation、ScaleAnimation、
TranslateAnimation、RotateAnimation分别实现了平移、旋转、改变 Alpha
值等动画,每个子类都在父类的基础上增加了各自独有的属性。
然后可以调用里面的函数设置相应的参数...
分享到:
相关推荐
Android TweenAnimation动画源码
相关博客见 http://blog.csdn.net/wzg_1987/article/details/8842661
比较全的android动画例子,包括基础的tween animation,这个就不必说了,还有比较新的属性动画:property animation
Android Tween Animation动画的使用demo,以及自定义动画,原理解析,相关博客: http://blog.csdn.net/w18756901575/article/details/53081551
该Demo,主要以xml形式实现了Animation动画中的Tween动画(另一种动画Frame动画Demo,稍后奉上),Tween动画的另一种实现形式是直接在代码中实现,相关Demo已上传,有需要的读者请到我的资源文件中下载即可。
Android使用TweenAnimation生成动画效果的例程,生成补间动画的例子,是一个比较基础简单的Android动画特效实例。
Android动画之Animation的使用。包括变换动画Tween Animation,帧动画Frame Animation,布局动画Layout Animation,属性动画Property Animation
前面讲了动画中的Frame动画,今天就来详细讲解一下Tween动画的使用。同样,在开始实例演示之前,先引用官方文档中的一段话:Tween动画是操作某个控件让其展现出旋转、渐变、移动、缩放的这么一种转换过程,我们成为...
学习TweenAnimation动画让一张图片360度旋转
包含AlphaAnimation渐变效果 TranslateAnimation:位移渐变 ScaleAnimation:缩放渐变 RotateAnimation:旋转渐变 AnimationSet:组合渐变... frameAnimation:帧动画的xml和代码实现方式,非常适合新手朋友参考。
博客示例代码,详情访问:http://blog.csdn.net/xiaohao0724/article/details/54614024
android 动画 简单使用 property animation view animation(tween animation)drawable animation(frame animation)
Android SDK:创建简单的补间动画 我在这里添加代码是读者使用/贡献代码的另一种方式。 该教程是在一段时间之前编写的,因此其中的技术可能已经过时了-但我将以编写时的源代码开始此仓库,以便阅读该教程的任何人...
上次提供了Animation动画其一Tween补间动画的源代码,这次提供其二Frame动画的源代码(以直接编码的形式实现Frame动画的Demo,笔者资源中另有以xml形式实现的Demo)。
之前说过了在Android中,动画Animation的实现有两种方式:Tween Animation(渐变动画)和Frame Animation(帧动画)。渐变动画是通过对场景里的对象不断做图像变换(平移、缩放、旋转等)产生动画效果。帧动画则是...
补间动画包含有scale,rotate,translate,alpha
前面讲了《Android动画之逐帧动画(Frame Animation)》,今天就来详细讲解一下Tween动画的使用。 同样,在开始实例演示之前,先引用官方文档中的一段话: Tween动画是操作某个控件让其展现出旋转、渐变、移动、缩放的...
android的基本动画分为四种:Tween Animation 变换动画、Frame Animation 帧动画、Layout Animation 布局动画、Property Animation 属性动画。