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();
}
});
}
}
相关文章推荐
- Android 动画之ScaleAnimation应用具体解释
- Android 动画之ScaleAnimation应用具体解释
- Android应用打包安装过程具体解释
- Android中SQLite应用具体解释
- ANDROID L——Material Design具体解释(动画篇)
- Android 动画之ScaleAnimation应用详解
- Android图文具体解释属性动画
- Android物业动画研究(Property Animation)彻底解决具体解释
- Android 动画具体解释View动画
- Android中的动画具体解释系列【3】——自己定义动画研究
- 使用Ant打包Android应用具体解释
- Android中的动画具体解释系列【1】——逐帧动画
- android动画具体解释四 创建动画
- 使用Ant打包Android应用具体解释——Ant使用解析
- android 动画xml属性具体解释
- Android中的动画具体解释系列【4】——Activity之间切换动画
- android动画具体解释一 概述
- Android 动画具体解释Frame动画 (Drawable Animation)
- android动画具体解释二 属性动画原理
- 【Android 应用开发】 FastJson 使用具体解释