在Android Studio中可以使用属性动画来实现扩大和缩小的圆形动画。以下是一个简单的示例代码:
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private ImageView circleImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
circleImageView = findViewById(R.id.circleImageView);
// 创建扩大动画
ObjectAnimator scaleXAnimator = ObjectAnimator.ofFloat(circleImageView, "scaleX", 1.0f, 1.5f);
scaleXAnimator.setDuration(1000);
scaleXAnimator.setRepeatMode(ObjectAnimator.REVERSE);
scaleXAnimator.setRepeatCount(ObjectAnimator.INFINITE);
ObjectAnimator scaleYAnimator = ObjectAnimator.ofFloat(circleImageView, "scaleY", 1.0f, 1.5f);
scaleYAnimator.setDuration(1000);
scaleYAnimator.setRepeatMode(ObjectAnimator.REVERSE);
scaleYAnimator.setRepeatCount(ObjectAnimator.INFINITE);
// 创建缩小动画
ObjectAnimator scaleXAnimator2 = ObjectAnimator.ofFloat(circleImageView, "scaleX", 1.5f, 1.0f);
scaleXAnimator2.setDuration(1000);
scaleXAnimator2.setRepeatMode(ObjectAnimator.REVERSE);
scaleXAnimator2.setRepeatCount(ObjectAnimator.INFINITE);
ObjectAnimator scaleYAnimator2 = ObjectAnimator.ofFloat(circleImageView, "scaleY", 1.5f, 1.0f);
scaleYAnimator2.setDuration(1000);
scaleYAnimator2.setRepeatMode(ObjectAnimator.REVERSE);
scaleYAnimator2.setRepeatCount(ObjectAnimator.INFINITE);
// 创建动画集合
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(scaleXAnimator).with(scaleYAnimator);
animatorSet.play(scaleXAnimator2).with(scaleYAnimator2).after(scaleXAnimator);
// 设置插值器
animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
// 开始动画
animatorSet.start();
}
}