失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【Android控件】呼吸效果的动画

【Android控件】呼吸效果的动画

时间:2020-03-28 16:32:39

相关推荐

【Android控件】呼吸效果的动画

由于只是展示上的,就不需要使用属性动画。直接使用的补间动画,简单的动画。

public class MainActivity extends Activity {private ImageView mImageView;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mImageView = (ImageView) findViewById(R.id.testview); // 普通的imageviewmImageView.setOnLongClickListener(new OnLongClickListener() {@Overridepublic boolean onLongClick(View v) {hideRepeatBtn();return false;}});mImageView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {showRepeatBtn();}});showRepeatBtn();}/*** 显示呼吸效果动画*/private void showRepeatBtn() {mImageView.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// 触摸时取消动画,并缩小,有按下的感觉if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) {mImageView.setScaleX(0.9f);mImageView.setScaleY(0.9f);if (mImageView.getAnimation() != null) {mImageView.getAnimation().cancel();}} else { // 松手后,恢复大小,并继续呼吸效果mImageView.setScaleX(1.0f);mImageView.setScaleY(1.0f);if (mImageView.getAnimation() != null) {mImageView.getAnimation().start();}}return false;}});// 放大小时view,完全显示后开始呼吸效果ScaleAnimation enterAnim = new ScaleAnimation(0f, 1.1f, 0f, 1.1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);enterAnim.setDuration(300); // 默认只执行一遍enterAnim.setAnimationListener(new AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) { }@Overridepublic void onAnimationRepeat(Animation animation) { }@Overridepublic void onAnimationEnd(Animation animation) {ScaleAnimation anim = new ScaleAnimation(1.0f, 1.1f, 1.0f, 1.1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);anim.setDuration(750);anim.setRepeatMode(Animation.REVERSE); // 放大并缩小,时间为750*2anim.setRepeatCount(Animation.INFINITE); // 无限循环mImageView.setAnimation(anim);mImageView.startAnimation(mImageView.getAnimation());}});mImageView.startAnimation(enterAnim);}/*** 动画隐藏连发按钮*/private void hideRepeatBtn() {// 缩小退出ScaleAnimation anim = new ScaleAnimation(1.1f, 0f, 1.1f, 0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);anim.setDuration(300);anim.setAnimationListener(new AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) { }@Overridepublic void onAnimationRepeat(Animation animation) { }@Overridepublic void onAnimationEnd(Animation animation) {if (mImageView.getAnimation() != null) {mImageView.getAnimation().cancel();}}});mImageView.startAnimation(anim);}}

如果觉得《【Android控件】呼吸效果的动画》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。