android的动画
学习android中,看了这个博主的文章挺好。为了更好的学习作为记录。
引用地址:http://blog.csdn.net/xyz_lmn/article/details/6906783
Android框架本身就使用了大量的动画效果,比如Activity切换的动画效果,Dialog弹出和关闭时的渐变动画效果以及Toast显示信息时的淡入淡出效果等等。Android系统框架为我们提供了一些动画类及其工具类,所以在Andorid应用中使用动画效果非常简单。Android中可以在xml中定义Animation,也可以在java code中定义。
Android中动画的实现分两种方式,一种方式是补间动画 Tween Animation,就是说你定义一个开始和结束,中间的部分由android自身实现。另一种叫逐帧动画 Frame Animation,就是说一帧一帧的连起来播放就变成了动画。
一、Tween Animation
xml中实现:
alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果
JavaCode中
AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 RotateAnimation 画面转移旋转动画效果
使用XML文件定义Tween Animation时XML文件的根节点可以是<alpha>、<scale> <translate>、<rotate>或者是把它们都放入<set>节点中。如下:
xml文件
<?xmlversion="1.0"encoding="utf-8"?>
<setxmlns:android="http://schemas.android.com/apk/res/android">
<alpha/>
<scale/>
<translate/>
<rotate/>
</set>
Java Code实现如下:
AlphaAnimation:
[java]
AnimationSetanimationSet=newAnimationSet(true);//创建一个AnimationSet对象
AlphaAnimationalphaAnimation=newAlphaAnimation(1,0);//创建一个AlphaAnimation对象
alphaAnimation.setDuration(1000);//设置动画执行的时间(单位:毫秒)
animationSet.addAnimation(alphaAnimation);//将AlphaAnimation对象添加到AnimationSet当中
view.startAnimation(animationSet);//使用view的startAnimation方法开始执行动画
RotateAnimation :
[java]
AnimationSetanimationSet=newAnimationSet(true);
/**
*前两个参数定义旋转的起始和结束的度数,后两个参数定义圆心的位置
*/
RotateAnimationrotateAnimation=newRotateAnimation(0,360,
Animation.RELATIVE_TO_PARENT,1f,
Animation.RELATIVE_TO_PARENT,0f);
rotateAnimation.setDuration(5000);
animationSet.addAnimation(rotateAnimation);
imageView.startAnimation(animationSet);
TranslateAnimation:
[java]
AnimationSetanimationSet=newAnimationSet(true);
/**
*x和y轴的起始和结束位置
*/
TranslateAnimationtranslateAnimation=newTranslateAnimation
(
Animation.RELATIVE_TO_SELF,0f,
Animation.RELATIVE_TO_SELF,0.5f,
Animation.RELATIVE_TO_SELF,0f,
Animation.RELATIVE_TO_SELF,1.0f
);
translateAnimation.setDuration(1000);
animationSet.addAnimation(translateAnimation);
view.startAnimation(animationSet);
ScaleAnimation:
[java]
AnimationSetanimationSet=newAnimationSet(true);
/**
*围绕一个点伸缩
*/
ScaleAnimationscaleAnimation=newScaleAnimation(1,0.1f,1,
0.1f,Animation.RELATIVE_TO_SELF,0.5f,
Animation.RELATIVE_TO_SELF,0.5f);
animationSet.addAnimation(scaleAnimation);
animationSet.setStartOffset(1000);
animationSet.setFillAfter(true);
animationSet.setFillBefore(false);
animationSet.setDuration(2000);
view.startAnimation(animationSet);
更多相关文章
- Android水波纹点击效果
- 收集android上开源的酷炫的交互动画和视觉效果:Interactive-anima
- android 抗锯齿效果
- Android(安卓)Animation学习笔记
- Android(安卓)ListView元素间隙线自定义渐变效果
- Android(安卓)8.1 关机充电动画(一)模式选择
- EditText设置更多文字为省略号
- Android(安卓)特殊界面效果之——透明界面
- android:layout_weight属性详解