ObjectAnimator ofFloat

本文深入探讨了 ObjectAnimator 在 Android 开发中的使用,包括其参数设置、动画效果实现及实例应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ObjectAnimator


public static ObjectAnimator ofFloat(Object target, String propertyName, float... values)


* @param values A set of values that the animation will animate between over time.


values 通常使用是两个值,从A 到 B, 但是在某些情况下,比如,不断的膨胀-缩小-膨胀-缩小, values完全可以搞多个比如 1.5->0.5->1.3->0.3->1.7.....
else if (id == R.id.replay) { Intent intent = new Intent("com.byd.sr.someip.data.SR_PLAYBACK_REPLAY"); mContext.sendBroadcast(intent); Logger.d(TAG, "sendBroadcast replay"); } else if (id == R.id.hide_car_preview_layout) { // 进行缩小并移动到右上角 AnimatorSet animatorSet = new AnimatorSet(); ObjectAnimator scaleXAnimator = ObjectAnimator.ofFloat(carPreviewContainer, "scaleX", 0.164f); ObjectAnimator scaleYAnimator = ObjectAnimator.ofFloat(carPreviewContainer, "scaleY", 0.524f); ObjectAnimator translationXAnimator = ObjectAnimator.ofFloat(carPreviewContainer, "translationX", 264f); // 向右移动 ObjectAnimator translationYAnimator = ObjectAnimator.ofFloat(carPreviewContainer, "translationY", -158f); // 向上移动 animatorSet.playTogether(scaleXAnimator, scaleYAnimator, translationXAnimator, translationYAnimator); animatorSet.setDuration(500); animatorSet.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); carPreviewContainer.setVisibility(GONE); showContainer.setVisibility(VISIBLE); } }); animatorSet.start(); } else if (id == R.id.show_container) { // 显示展车预览标题 showContainer.setVisibility(GONE); carPreviewContainer.setVisibility(VISIBLE); // 卡片恢复原状 AnimatorSet animatorSetBack = new AnimatorSet(); ObjectAnimator scaleXAnimatorBack = ObjectAnimator.ofFloat(carPreviewContainer, "scaleX", 1f); // 恢复原始宽度 ObjectAnimator scaleYAnimatorBack = ObjectAnimator.ofFloat(carPreviewContainer, "scaleY", 1f); // 恢复原始高度 ObjectAnimator translationXAnimatorBack = ObjectAnimator.ofFloat(carPreviewContainer, "translationX", 0f); // 恢复原始X位置 ObjectAnimator translationYAnimatorBack = ObjectAnimator.ofFloat(carPreviewContainer, "translationY", 0f); // 恢复原始Y位置 animatorSetBack.playTogether(scaleXAnimatorBack, scaleYAnimatorBack, translationXAnimatorBack, translationYAnimatorBack); animatorSetBack.setDuration(500); animatorSetBack.start(); }把这段代码改写成使用贝塞尔曲线的知识实现卡片的缩放
03-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值