您的位置:首页 > 移动开发 > Android开发

Android 动画之ScaleAnimation应用具体解释

2015-04-29 17:36 309 查看
android中提供了4中动画:
AlphaAnimation透明度动画效果
ScaleAnimation缩放动画效果
TranslateAnimation位移动画效果
RotateAnimation旋转动画效果

本节解说ScaleAnimation动画,
ScaleAnimation(floatfromX,floattoX,floatfromY,floattoY,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)
參数说明:

复制代码代码例如以下:

floatfromX动画起始时X坐标上的伸缩尺寸
floattoX动画结束时X坐标上的伸缩尺寸
floatfromY动画起始时Y坐标上的伸缩尺寸
floattoY动画结束时Y坐标上的伸缩尺寸
intpivotXType动画在X轴相对于物件位置类型
floatpivotXValue动画相对于物件的X坐标的開始位置
intpivotYType动画在Y轴相对于物件位置类型
floatpivotYValue动画相对于物件的Y坐标的開始位置

代码:

复制代码代码例如以下:

publicclassMainActivityextendsActivity{
ImageViewimage;
Buttonstart;
Buttoncancel;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image=(ImageView)findViewById(R.id.main_img);
start=(Button)findViewById(R.id.main_start);
cancel=(Button)findViewById(R.id.main_cancel);
/**设置缩放动画*/
finalScaleAnimationanimation=newScaleAnimation(0.0f,1.4f,0.0f,1.4f,
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
animation.setDuration(2000);//设置动画持续时间
/**经常用法*/
//animation.setRepeatCount(intrepeatCount);//设置反复次数
//animation.setFillAfter(boolean);//动画运行完后是否停留在运行完的状态
//animation.setStartOffset(longstartOffset);//运行前的等待时间
start.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewarg0){
image.setAnimation(animation);
/**開始动画*/
animation.startNow();
}
});
cancel.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
/**结束动画*/
animation.cancel();
}
});
}
}
本节解说ScaleAnimation动画,
ScaleAnimation(floatfromX,floattoX,floatfromY,floattoY,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)
參数说明:
复制代码代码例如以下:
floatfromX动画起始时X坐标上的伸缩尺寸
floattoX动画结束时X坐标上的伸缩尺寸
floatfromY动画起始时Y坐标上的伸缩尺寸
floattoY动画结束时Y坐标上的伸缩尺寸
intpivotXType动画在X轴相对于物件位置类型
floatpivotXValue动画相对于物件的X坐标的開始位置
intpivotYType动画在Y轴相对于物件位置类型
floatpivotYValue动画相对于物件的Y坐标的開始位置

代码:
复制代码代码例如以下:
publicclassMainActivityextendsActivity{
ImageViewimage;
Buttonstart;
Buttoncancel;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image=(ImageView)findViewById(R.id.main_img);
start=(Button)findViewById(R.id.main_start);
cancel=(Button)findViewById(R.id.main_cancel);
/**设置缩放动画*/
finalScaleAnimationanimation=newScaleAnimation(0.0f,1.4f,0.0f,1.4f,
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
animation.setDuration(2000);//设置动画持续时间
/**经常用法*/
//animation.setRepeatCount(intrepeatCount);//设置反复次数
//animation.setFillAfter(boolean);//动画运行完后是否停留在运行完的状态
//animation.setStartOffset(longstartOffset);//运行前的等待时间
start.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewarg0){
image.setAnimation(animation);
/**開始动画*/
animation.startNow();
}
});
cancel.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
/**结束动画*/
animation.cancel();
}
});
}
}
本节解说RotateAnimation动画,
RotateAnimation(floatfromDegrees,floattoDegrees,intpivotXType,floatpivotXValue,intpivotYType,floatpivotYValue)
參数说明:
floatfromDegrees:旋转的開始角度。
floattoDegrees:旋转的结束角度。
intpivotXType:X轴的伸缩模式,能够取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
floatpivotXValue:X坐标的伸缩值。
intpivotYType:Y轴的伸缩模式,能够取值为ABSOLUTE、RELATIVE_TO_SELF、RELATIVE_TO_PARENT。
floatpivotYValue:Y坐标的伸缩值。
代码:
复制代码代码例如以下:
publicclassMainActivityextendsActivity{
ImageViewimage;
Buttonstart;
Buttoncancel;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image=(ImageView)findViewById(R.id.main_img);
start=(Button)findViewById(R.id.main_start);
cancel=(Button)findViewById(R.id.main_cancel);
/**设置旋转动画*/
finalRotateAnimationanimation=newRotateAnimation(0f,360f,Animation.RELATIVE_TO_SELF,
0.5f,Animation.RELATIVE_TO_SELF,0.5f);
animation.setDuration(3000);//设置动画持续时间
/**经常用法*/
//animation.setRepeatCount(intrepeatCount);//设置反复次数
//animation.setFillAfter(boolean);//动画运行完后是否停留在运行完的状态
//animation.setStartOffset(longstartOffset);//运行前的等待时间
start.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewarg0){
image.setAnimation(animation);
/**開始动画*/
animation.startNow();
}
});
cancel.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
/**结束动画*/
animation.cancel();
}
});
}
}
本节解说TranslateAnimation动画,TranslateAnimation比較经常使用,比方QQ,网易新闻菜单栏的动画,就能够用TranslateAnimation实现,
通过TranslateAnimation(floatfromXDelta,floattoXDelta,floatfromYDelta,floattoYDelta)来定义动画

參数说明:
复制代码代码例如以下:
floatfromXDelta动画開始的点离当前ViewX坐标上的差值
floattoXDelta动画结束的点离当前ViewX坐标上的差值
floatfromYDelta动画開始的点离当前ViewY坐标上的差值
floattoYDelta动画開始的点离当前ViewY坐标上的差值

经常用法:
复制代码代码例如以下:
animation.setDuration(longdurationMillis);//设置动画持续时间
animation.setRepeatCount(inti);//设置反复次数
animation.setRepeatMode(Animation.REVERSE);//设置反方向运行

Xml属性:
复制代码代码例如以下:
android:duration:执行动画的时间
android:repeatCount:定义动画反复的时间

代码:
复制代码代码例如以下:
publicclassMainActivityextendsActivity{
ImageViewimage;
Buttonstart;
Buttoncancel;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image=(ImageView)findViewById(R.id.main_img);
start=(Button)findViewById(R.id.main_start);
cancel=(Button)findViewById(R.id.main_cancel);
/**设置位移动画向右位移150*/
finalTranslateAnimationanimation=newTranslateAnimation(0,150,0,0);
animation.setDuration(2000);//设置动画持续时间
animation.setRepeatCount(2);//设置反复次数
animation.setRepeatMode(Animation.REVERSE);//设置反方向运行
start.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewarg0){
image.setAnimation(animation);
/**開始动画*/
animation.startNow();
}
});
cancel.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
/**结束动画*/
animation.cancel();
}
});
}
}
本节解说AlphaAnimation动画,窗体的动画效果,淡入淡出什么的,有些游戏的欢迎动画,logo的淡入淡出效果就使用AlphaAnimation。
直接看代码:
复制代码代码例如以下:
publicclassMainActivityextendsActivity{
ImageViewimage;
Buttonstart;
Buttoncancel;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image=(ImageView)findViewById(R.id.main_img);
start=(Button)findViewById(R.id.main_start);
cancel=(Button)findViewById(R.id.main_cancel);
/**设置透明度渐变动画*/
finalAlphaAnimationanimation=newAlphaAnimation(1,0);
animation.setDuration(2000);//设置动画持续时间
/**经常用法*/
//animation.setRepeatCount(intrepeatCount);//设置反复次数
//animation.setFillAfter(boolean);//动画运行完后是否停留在运行完的状态
//animation.setStartOffset(longstartOffset);//运行前的等待时间
start.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewarg0){
image.setAnimation(animation);
/**開始动画*/
animation.startNow();
}
});
cancel.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
/**结束动画*/
animation.cancel();
}
});
}
}





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: