首页 热点 业界 科技快讯 数码 电子消费 通信 前沿动态 电商

快看:Android自定义加载圈的方法

2022-06-22 09:58:01 来源 : 软件开发网


【资料图】

本文实例为大家分享了Android自定义加载圈的具体代码,供大家参考,具体内容如下

    public class LoadingView extends LinearLayout {    public LoadingView(Context context) {        this(context, null);    }    public LoadingView(Context context, @Nullable AttributeSet attrs) {        this(context, attrs, 0);    }    public LoadingView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        setOrientation(VERTICAL);        setGravity(Gravity.CENTER);        setBackgroundResource(R.drawable.loadingsp);        LoadView loading = new LoadView(getContext());        loading.setLayoutParams(new ViewGroup.LayoutParams(200, 200));        addView(loading);        TextView tv = new TextView(getContext());        tv.setText("正在加载中");        LinearLayout.LayoutParams layoutParams = new LayoutParams(-2, -2);        layoutParams.setMargins(0, 10, 0, 0);        tv.setLayoutParams(layoutParams);        tv.setGravity(Gravity.CENTER);        tv.setTextColor(Color.WHITE);        addView(tv);    }    class LoadView extends View {        Paint mPaint;        private int mWidth;        private int mHeight;        private int mCurrentIndex = 0;        private int count = 12;        public LoadView(Context context) {            super(context);            mPaint = new Paint();            mPaint.setAntiAlias(true);            mPaint.setStyle(Paint.Style.FILL);            mPaint.setStrokeWidth(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3, getResources().getDisplayMetrics()));            mPaint.setColor(Color.WHITE);        }        @Override        protected void onDraw(Canvas canvas) {            super.onDraw(canvas);            if (mCurrentIndex >= count) {                mCurrentIndex = 0;            }            int endAlpha = 255 / count;            for (int i = 0; i < count; i++) {                int alpha;                if (mCurrentIndex - i > 0) {                    alpha = endAlpha * (mCurrentIndex - i);                } else {                    alpha = 255 - 255 / count * (i - mCurrentIndex);                }                mPaint.setColor(Color.argb(alpha, 255, 255, 255));                canvas.drawLine(mWidth / 2, 0, mWidth / 2, TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics()), mPaint);                canvas.rotate(360 / count, mWidth / 2, mHeight / 2);            }            mCurrentIndex++;            postInvalidateDelayed(100);        }        @Override        protected void onSizeChanged(int w, int h, int oldw, int oldh) {            super.onSizeChanged(w, h, oldw, oldh);            mWidth = getWidth();            mHeight = getHeight();        }    }}       

标签: 为大家分享 大家参考

相关文章

最近更新
观焦点:超萌相机 2023-03-01 12:29:37
海南百货网 2023-03-01 12:13:44
焦点热讯:宜点充 2023-02-28 10:10:16
天天关注:小铺CEO 2023-02-28 10:07:13
【世界聚看点】KaFit 2023-02-28 09:31:37
葱天下 2023-02-28 09:17:03
渔界竞钓 2023-02-28 08:15:29
焦点快看:鲸奇视频 2023-02-28 06:30:37
环球热议:萝小逗 2023-02-27 23:25:49
简讯:小码公交 2023-02-27 23:16:12
彼岸花 2023-02-27 22:32:52
时时夺宝 2023-02-27 21:37:50
天天动态:袜之源 2023-02-27 21:29:50
天天资讯:AI空气 2023-02-27 20:19:46
世界时讯:绘读 2023-02-27 20:19:41
看点:一元得购 2023-02-27 19:26:28