Android 动画之TranslateAnimation应用详解
程序员文章站
2023-12-15 11:23:40
android中提供了4中动画: alphaanimation 透明度动画效果 scaleanimation 缩放动画效果 translateanimation 位移动画效...
android中提供了4中动画:
alphaanimation 透明度动画效果
scaleanimation 缩放动画效果
translateanimation 位移动画效果
rotateanimation 旋转动画效果
本节讲解translateanimation动画,translateanimation比较常用,比如qq,网易新闻菜单条的动画,就可以用translateanimation实现,
通过translateanimation(float fromxdelta, float toxdelta, float fromydelta, float toydelta) 来定义动画
参数说明:
float fromxdelta 动画开始的点离当前view x坐标上的差值
float toxdelta 动画结束的点离当前view x坐标上的差值
float fromydelta 动画开始的点离当前view y坐标上的差值
float toydelta 动画开始的点离当前view y坐标上的差值
常用方法:
animation.setduration(long durationmillis);//设置动画持续时间
animation.setrepeatcount(int i);//设置重复次数
animation.setrepeatmode(animation.reverse);//设置反方向执行
xml属性:
android:duration:运行动画的时间
android:repeatcount:定义动画重复的时间
代码:
public class mainactivity extends activity {
imageview image;
button start;
button cancel;
@override
public void oncreate(bundle savedinstancestate) {
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 */
final translateanimation animation = new translateanimation(0, 150,0, 0);
animation.setduration(2000);//设置动画持续时间
animation.setrepeatcount(2);//设置重复次数
animation.setrepeatmode(animation.reverse);//设置反方向执行
start.setonclicklistener(new onclicklistener() {
public void onclick(view arg0) {
image.setanimation(animation);
/** 开始动画 */
animation.startnow();
}
});
cancel.setonclicklistener(new onclicklistener() {
public void onclick(view v) {
/** 结束动画 */
animation.cancel();
}
});
}
}
效果:
alphaanimation 透明度动画效果
scaleanimation 缩放动画效果
translateanimation 位移动画效果
rotateanimation 旋转动画效果
本节讲解translateanimation动画,translateanimation比较常用,比如qq,网易新闻菜单条的动画,就可以用translateanimation实现,
通过translateanimation(float fromxdelta, float toxdelta, float fromydelta, float toydelta) 来定义动画
参数说明:
复制代码 代码如下:
float fromxdelta 动画开始的点离当前view x坐标上的差值
float toxdelta 动画结束的点离当前view x坐标上的差值
float fromydelta 动画开始的点离当前view y坐标上的差值
float toydelta 动画开始的点离当前view y坐标上的差值
常用方法:
复制代码 代码如下:
animation.setduration(long durationmillis);//设置动画持续时间
animation.setrepeatcount(int i);//设置重复次数
animation.setrepeatmode(animation.reverse);//设置反方向执行
xml属性:
复制代码 代码如下:
android:duration:运行动画的时间
android:repeatcount:定义动画重复的时间
代码:
复制代码 代码如下:
public class mainactivity extends activity {
imageview image;
button start;
button cancel;
@override
public void oncreate(bundle savedinstancestate) {
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 */
final translateanimation animation = new translateanimation(0, 150,0, 0);
animation.setduration(2000);//设置动画持续时间
animation.setrepeatcount(2);//设置重复次数
animation.setrepeatmode(animation.reverse);//设置反方向执行
start.setonclicklistener(new onclicklistener() {
public void onclick(view arg0) {
image.setanimation(animation);
/** 开始动画 */
animation.startnow();
}
});
cancel.setonclicklistener(new onclicklistener() {
public void onclick(view v) {
/** 结束动画 */
animation.cancel();
}
});
}
}
效果:
推荐阅读
-
Android 动画之TranslateAnimation应用详解
-
Android 动画之RotateAnimation应用详解
-
Android 动画之ScaleAnimation应用详解
-
React Native学习之Android的返回键BackAndroid详解
-
Android之ImageSwitcher的实例详解
-
Android Animation之TranslateAnimation(平移动画)
-
Android源码学习之组合模式定义及应用
-
Android源码学习之单例模式应用及优点介绍
-
android调用web service(cxf)实例应用详解
-
Android学习笔记之应用单元测试实例分析