900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Android 最简单仿IOS菊花加载样式 自定义Loading加载View

Android 最简单仿IOS菊花加载样式 自定义Loading加载View

时间:2019-11-27 13:08:15

相关推荐

Android 最简单仿IOS菊花加载样式 自定义Loading加载View

自定义菊花旋转加载view,可自定义半径大小,旋转view个数、颜色等,具体代码如下,可直接使用

public class LoadingView extends View {private RectF rectF;private Paint paint;private int radius =52; //半径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();}@Overrideprotected 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);//可根据自己需求调整loading大小rectF = new RectF(radius - 8, 23, radius+2 , 40);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.rotate(count * 45, radius, radius);//设置loading加载旋转个数for (int i = 0; i < 8; i++) {paint.setAlpha(255 - i * 20);canvas.drawRoundRect(rectF, 20, 20, paint);canvas.rotate(45, radius, radius);}count++;if (count > 7) {count = 0;}if (run) {postInvalidateDelayed(200);}}public void start() {if (!run) {postInvalidateDelayed(200);run = true;}}public void stop() {run = false;}}

Xml中调用如下

<com。view.LoadingViewandroid:id="@+id/loading"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_marginLeft="50dp"/>

样式如下图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。