在Android中,要为GradientDrawable实现动画效果,可以使用属性动画(Property Animation)。以下是一个简单的示例,展示了如何使用属性动画为GradientDrawable的边框宽度和颜色添加动画效果。
- 首先,创建一个GradientDrawable对象并设置其属性:
GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setShape(GradientDrawable.RECTANGLE); gradientDrawable.setCornerRadius(10); gradientDrawable.setStroke(5, Color.BLACK); gradientDrawable.setColor(Color.BLUE);
- 创建一个属性动画对象,用于修改GradientDrawable的属性:
ObjectAnimator strokeAnimator = ObjectAnimator.ofInt(gradientDrawable, "strokeWidth", 5, 15); strokeAnimator.setDuration(2000); strokeAnimator.setRepeatCount(ObjectAnimator.INFINITE); strokeAnimator.setRepeatMode(ObjectAnimator.RESTART); ObjectAnimator colorAnimator = ObjectAnimator.ofArgb(gradientDrawable, "color", Color.BLUE, Color.RED); colorAnimator.setDuration(2000); colorAnimator.setRepeatCount(ObjectAnimator.INFINITE); colorAnimator.setRepeatMode(ObjectAnimator.RESTART);
- 将两个动画对象添加到动画集合中,并启动动画:
AnimatorSet animatorSet = new AnimatorSet(); animatorSet.playTogether(strokeAnimator, colorAnimator); animatorSet.start();
这样,GradientDrawable的边框宽度和颜色将在2秒内无限循环动画。你可以根据需要自定义动画的参数,例如持续时间、重复次数和重复模式等。