1
私はImageView
をdrawable.circleに設定しています。円はストローク幅が太い。ストロークの幅をアニメーション化して、指定された期間にわたって1dpに設定されているものから縮小したいと思います。 drawableでこれを行うことができない場合は、そのパスにpaint.styleがStrokeに設定された円のcustomViewがあります。そのアニメーションをdrawable.circleまたはcustomViewに適用したいと思います。ビューのストローク幅をアニメーション化する方法
CustomCirleView:
public class CustomCircle extends View {
private Path path;
private Paint paint;
float customStrokeWidth = 80;
public float getCustomStrokeWidth() {
return customStrokeWidth;
}
public void setCustomStrokeWidth(float customStrokeWidth) {
this.customStrokeWidth = customStrokeWidth;
}
public CustomCircle(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
path = new Path();
paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setAntiAlias(true);
paint.setColor(Color.parseColor("#FC6C2B"));
paint.setStrokeWidth(customStrokeWidth);
path.addCircle(getMeasuredWidth()/2, getMeasuredHeight()/2, (getMeasuredWidth()/2)-customStrokeWidth, Path.Direction.CW);
canvas.drawPath(path, paint);
}
}
おかげ
アニメーションベクトルドロワブルあなたはストローク幅をアニメーション化することができ、可能な限り少ないとして行う必要がありますようと
onDraw
メソッド内のすべての塗料の初期化を行うことはありませんしてください。アニメーションをより精密に制御する必要がある場合は、カスタム図面を作成してアニメートすることができますが、カスタムビューよりもデカップリングされています。 – BladeCoder