仿ios系统加载动画(菊花旋转)

无需添加图片,通过自定义view方式绘制菊花图,代码极简

效果图:

image

一、自定义loadingview:

public class LoadingView extends View {

private RectF rectF;

private Paint paint;

private int radius = 90; //半径

private int count = 0;

private boolean run = false; //动画控制

public LoadingView(Context context) {
    super(context);
    init();
}

public LoadingView(Context context, @Nullable AttributeSet attrs) {

    super(context, attrs);
    init();
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    setMeasuredDimension(radius * 2, radius * 2);
}

private void init() {
    paint = new Paint();
    paint.setAntiAlias(true);
    paint.setColor(Color.WHITE);
    rectF = new RectF(radius - 5, 30, radius + 5, 60);
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.rotate(count * 36, radius, radius);
    for (int i = 0; i < 10; i++) {
        paint.setAlpha(255 - i * 20);
        canvas.drawRoundRect(rectF, 10, 10, paint);
        canvas.rotate(36, radius, radius);
    }
    count++;
    if (count > 9) {
        count = 0;
    }
    if (run) {
        postInvalidateDelayed(100);
    }
}

public void start() {
    if (!run) {
        postInvalidateDelayed(100);
        run = true;
    }
}
public void stop() {
    run = false;
}

}

二、dialog调用方法:

布局设置

image

dialog配置:

image

然后就可以像普通dialog那样使用啦

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,641评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,912评论 0 17
  • 当你爱一个人的时候,爱到八分绝对刚刚好。所有的期待和希望都只有七八分;剩下两三分用来爱自己。如果你还继续爱得更多,...
    拚死为红颜阅读 2,767评论 1 0
  • 设计心理学Day0912-8 @因心木灬 引导行为的约束力:强制功能,在行动受到限制的情况下,出现在某个阶段的差错...
    小冷睡了阅读 1,436评论 0 0
  • 今天我们的话题是,在亚马逊联盟中,如何选取一个比较专业,比较有趣的域名。 之前我觉得这个话题不值得单独写一篇文章来...
    北蚁系统阅读 4,177评论 0 2

友情链接更多精彩内容