在Android API19中创建圆形显示动画可以通过以下步骤实现:
public class CircleView extends View {
private Paint mPaint;
private int mRadius;
public CircleView(Context context) {
super(context);
init();
}
public CircleView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
mPaint = new Paint();
mPaint.setColor(Color.BLUE);
mPaint.setStyle(Paint.Style.FILL);
mRadius = 0;
}
@Override
protected void onDraw(Canvas canvas) {
int width = getWidth();
int height = getHeight();
int centerX = width / 2;
int centerY = height / 2;
canvas.drawCircle(centerX, centerY, mRadius, mPaint);
}
public void setRadius(int radius) {
mRadius = radius;
invalidate();
}
}
public class MainActivity extends AppCompatActivity {
private CircleView mCircleView;
private ValueAnimator mAnimator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCircleView = findViewById(R.id.circle_view);
mAnimator = ValueAnimator.ofInt(0, 200);
mAnimator.setDuration(2000);
mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int radius = (int) animation.getAnimatedValue();
mCircleView.setRadius(radius);
}
});
mAnimator.start();
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<com.example.circleanimation.CircleView
android:id="@+id/circle_view"
android:layout_width="200dp"
android:layout_height="200dp" />
</RelativeLayout>
这样就可以在Android API19中创建一个圆形显示动画。通过改变ValueAnimator的范围和持续时间,可以调整动画的速度和大小。
领取专属 10元无门槛券
手把手带您无忧上云