如何在android中使用流星辉光效果绘制圆弧
我真正想要的是一个动画,一个弧线移动的效果看起来像流星从天空坠落,你可以在LG G3的小窗口中看到动画,每当盒子关闭时,动画围绕着戒指发光,检查这个视频,从YouTube你可以在00:18,00:30,01:18,01:29看到它…: 我做了一点搜索,并编写了代码REFRING to,但绘制圆弧的线条看起来很坚固,没有我想要的效果,这是我的圆弧绘制代码:如何在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
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,它确实有一些效果,但仍然不是我想要的效果。无论如何谢谢你!