Android编程实现仿心跳动画效果的方法
本文实例讲述了Android编程实现仿心跳动画效果的方法。分享给大家供大家参考,具体如下:
//按钮模拟心脏跳动
privatevoidplayHeartbeatAnimation(){
AnimationSetanimationSet=newAnimationSet(true);
animationSet.addAnimation(newScaleAnimation(1.0f,1.8f,1.0f,1.8f,
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,
0.5f));
animationSet.addAnimation(newAlphaAnimation(1.0f,0.4f));
animationSet.setDuration(200);
animationSet.setInterpolator(newAccelerateInterpolator());
animationSet.setFillAfter(true);
animationSet.setAnimationListener(newAnimationListener(){
@Override
publicvoidonAnimationStart(Animationanimation){
}
@Override
publicvoidonAnimationRepeat(Animationanimation){
}
@Override
publicvoidonAnimationEnd(Animationanimation){
AnimationSetanimationSet=newAnimationSet(true);
animationSet.addAnimation(newScaleAnimation(1.8f,1.0f,1.8f,
1.0f,Animation.RELATIVE_TO_SELF,0.5f,
Animation.RELATIVE_TO_SELF,0.5f));
animationSet.addAnimation(newAlphaAnimation(0.4f,1.0f));
animationSet.setDuration(600);
animationSet.setInterpolator(newDecelerateInterpolator());
animationSet.setFillAfter(false);
//实现心跳的View
imageView.startAnimation(animationSet);
}
});
//实现心跳的View
imageView.startAnimation(animationSet);
}
由于这是一个循环的动画,所以需要开一个线程来进行动画的实现,当然还有另外一个方法,就是在一个动画结束开始另一个动画,在另一个动画结束开始这个动画也可以,这边示例用的是线程。
newThread(){
publicvoidrun(){
while(true){
try{
Thread.sleep(1000);
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
runOnUiThread(newRunnable(){
publicvoidrun(){
playHeartbeatAnimation();
}
});
}
};
}.start();
希望本文所述对大家Android程序设计有所帮助。