Android 动画之ScaleAnimation应用详解
程序员文章站
2023-12-15 11:23:34
android中提供了4中动画: alphaanimation 透明度动画效果 scaleanimation 缩放动画效果 translateanimation 位移动画效...
android中提供了4中动画:
alphaanimation 透明度动画效果
scaleanimation 缩放动画效果
translateanimation 位移动画效果
rotateanimation 旋转动画效果
本节讲解scaleanimation 动画,
scaleanimation(float fromx, float tox, float fromy, float toy,int pivotxtype, float pivotxvalue, int pivotytype, float pivotyvalue)
参数说明:
float fromx 动画起始时 x坐标上的伸缩尺寸
float tox 动画结束时 x坐标上的伸缩尺寸
float fromy 动画起始时y坐标上的伸缩尺寸
float toy 动画结束时y坐标上的伸缩尺寸
int pivotxtype 动画在x轴相对于物件位置类型
float pivotxvalue 动画相对于物件的x坐标的开始位置
int pivotytype 动画在y轴相对于物件位置类型
float pivotyvalue 动画相对于物件的y坐标的开始位置
代码:
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);
/** 设置缩放动画 */
final scaleanimation animation =new scaleanimation(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(int repeatcount);//设置重复次数
//animation.setfillafter(boolean);//动画执行完后是否停留在执行完的状态
//animation.setstartoffset(long startoffset);//执行前的等待时间
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 旋转动画效果
本节讲解scaleanimation 动画,
scaleanimation(float fromx, float tox, float fromy, float toy,int pivotxtype, float pivotxvalue, int pivotytype, float pivotyvalue)
参数说明:
复制代码 代码如下:
float fromx 动画起始时 x坐标上的伸缩尺寸
float tox 动画结束时 x坐标上的伸缩尺寸
float fromy 动画起始时y坐标上的伸缩尺寸
float toy 动画结束时y坐标上的伸缩尺寸
int pivotxtype 动画在x轴相对于物件位置类型
float pivotxvalue 动画相对于物件的x坐标的开始位置
int pivotytype 动画在y轴相对于物件位置类型
float pivotyvalue 动画相对于物件的y坐标的开始位置
代码:
复制代码 代码如下:
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);
/** 设置缩放动画 */
final scaleanimation animation =new scaleanimation(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(int repeatcount);//设置重复次数
//animation.setfillafter(boolean);//动画执行完后是否停留在执行完的状态
//animation.setstartoffset(long startoffset);//执行前的等待时间
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();
}
});
}
}
效果: