Android之仿心跳动画实现
16lz
2022-07-25
// 按钮模拟心脏跳动private void playHeartbeatAnimation() {AnimationSet animationSet = new AnimationSet(true);animationSet.addAnimation(new ScaleAnimation(1.0f, 1.8f, 1.0f, 1.8f,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f));animationSet.addAnimation(new AlphaAnimation(1.0f, 0.4f));animationSet.setDuration(200);animationSet.setInterpolator(new AccelerateInterpolator());animationSet.setFillAfter(true);animationSet.setAnimationListener(new AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {}@Overridepublic void onAnimationRepeat(Animation animation) {}@Overridepublic void onAnimationEnd(Animation animation) {AnimationSet animationSet = new AnimationSet(true);animationSet.addAnimation(new ScaleAnimation(1.8f, 1.0f, 1.8f,1.0f, Animation.RELATIVE_TO_SELF, 0.5f,Animation.RELATIVE_TO_SELF, 0.5f));animationSet.addAnimation(new AlphaAnimation(0.4f, 1.0f));animationSet.setDuration(600);animationSet.setInterpolator(new DecelerateInterpolator());animationSet.setFillAfter(false); // 实现心跳的ViewimageView.startAnimation(animationSet);}}); // 实现心跳的ViewimageView.startAnimation(animationSet);}
由于这是一个循环的动画,所以需要开一个线程来进行动画的实现,当然还有另外一个方法,就是在一个动画结束开始另一个动画,在另一个动画结束开始这个动画也可以,这边示例用的是线程。
new Thread(){public void run() {while (true){try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}runOnUiThread(new Runnable() {public void run() {playHeartbeatAnimation();}});}};}.start();
更多相关文章
- 浅谈Java中Collections.sort对List排序的两种方法
- python list.sort()根据多个关键字排序的方法实现
- Android(安卓)Activity界面切换添加动画特效
- android EditText设置不可写
- Android(安卓)拨号器的简单实现
- android实现字体闪烁动画的方法
- Android中不同应用间实现SharedPreferences数据共享
- 浅析Android中的消息机制-解决:Only the original thread that cr
- [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o