如何在android中使用流星辉光效果绘制圆弧

如何在android中使用流星辉光效果绘制圆弧,android,animation,paint,android-custom-view,lg,Android,Animation,Paint,Android Custom View,Lg,我真正想要的是一个动画,一个弧线移动的效果看起来像流星从天空坠落,你可以在LG G3的小窗口中看到动画,每当盒子关闭时,动画围绕着戒指发光,检查这个视频,从YouTube你可以在00:18,00:30,01:18,01:29看到它…: 我做了一点搜索,并编写了代码REFRING to,但绘制圆弧的线条看起来很坚固,没有我想要的效果,这是我的圆弧绘制代码: public class SideArcsView extends View{ private Paint mPaint; private

我真正想要的是一个动画,一个弧线移动的效果看起来像流星从天空坠落,你可以在LG G3的小窗口中看到动画,每当盒子关闭时,动画围绕着戒指发光,检查这个视频,从YouTube你可以在00:18,00:30,01:18,01:29看到它…:

我做了一点搜索,并编写了代码REFRING to,但绘制圆弧的线条看起来很坚固,没有我想要的效果,这是我的圆弧绘制代码:

public class SideArcsView extends View{

private Paint mPaint;
private int parentWidth;
private int strokeWidth;
private RectF oval;
private static int INITIAL_LEFT_ARC_START_ANGLE = 225;
private static int INITIAL_RIGHT_ARC_START_ANGLE = 315;
private int startLeftArcAngle = INITIAL_LEFT_ARC_START_ANGLE;
private int startRightArcAngle = INITIAL_RIGHT_ARC_START_ANGLE;
private int arcAngle = 45;

public SideArcsView(Context mContext, int parentWidth) {
    super(mContext);
    this.parentWidth = parentWidth;
    init();
}

private void init() {
    strokeWidth = (12 * parentWidth) / 300;
    initPaint();
    initOval();
}

private void initPaint() {
    mPaint = new Paint();
    mPaint.setColor(Color.WHITE);
    mPaint.setStrokeWidth(strokeWidth);
    mPaint.setStyle(Paint.Style.STROKE);
    mPaint.setAntiAlias(true);
    mPaint.setStrokeCap(Paint.Cap.ROUND);
}

private void initOval() {
    float padding = mPaint.getStrokeWidth() / 2;
    oval = new RectF();
    oval.set(padding, padding, parentWidth - padding, parentWidth - padding);
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    drawArcs(canvas);
}

private void drawArcs(Canvas canvas) {
    canvas.drawArc(oval, startLeftArcAngle, arcAngle, false, mPaint);
    canvas.drawArc(oval, startRightArcAngle, -arcAngle, false, mPaint);
}

public void startRotateAnimation() {
    ValueAnimator valueAnimator = ValueAnimator.ofInt(0, 136);
    valueAnimator.setInterpolator(new DecelerateInterpolator());
    valueAnimator.setDuration(2000);
    valueAnimator.setRepeatCount(ValueAnimator.INFINITE);
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            startLeftArcAngle = INITIAL_LEFT_ARC_START_ANGLE - (int) animation.getAnimatedValue();
            startRightArcAngle = INITIAL_RIGHT_ARC_START_ANGLE + (int) animation.getAnimatedValue();
            invalidate();
        }
    });
    valueAnimator.start();
}

public void startResizeDownAnimation() {
    ValueAnimator valueAnimator = ValueAnimator.ofInt(45, 10);
    valueAnimator.setInterpolator(new DecelerateInterpolator());
    valueAnimator.setDuration(2000);
    valueAnimator.setRepeatCount(ValueAnimator.INFINITE);
    valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            arcAngle = (int) animation.getAnimatedValue();
            invalidate();
        }
    });
    valueAnimator.start();
}

}
它看起来像:


谁能告诉我怎么画LG G3的光环?请给我一些建议

看PaintsetMaskFilter@pskink谢谢你的建议!我试过BlurMaskFilter,它确实有一些效果,但仍然不是我想要的效果。无论如何谢谢你!