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程序设计有所帮助。