​长葛微信公众号代运营【长葛商城小程序开发】长葛微信公众号编辑排版设计_长葛微信小程序制作公司—长葛微信公众号小程序托管服务中心-网站优化-网站建设【企业网站制作|网页设计】- 高端网站建设 - 书生商友信息科技-

全国热线:400-111-6878

网站建设推广专家

​长葛微信公众号代运营【长葛商城小程序开发】长葛微信公众号编辑排版设计_长葛微信小程序制作公司—长葛微信公众号小程序托管服务中心

发表日期: 2021-07-25 17:32:19 浏览次数:76

长葛微信公众号代运营【长葛商城小程序开发】长葛微信公众号编辑排版设计_长葛微信小程序制作公司—长葛微信公众号小程序托管服务中心

网站建设.jpg


网站建设

长葛此地名,最早见于《春秋左氏传》:“鲁隐公五年,宋人代郑围长葛”,鲁隐公五年,即公元前718年。又(民国十九年)长葛县志记载:长葛,盖葛天氏故址也;后人思永其泽,故名曰长葛(见旧志)。战国时,“其社中树暴长,更名长社”。 [17] 

春秋时,长葛为郑国城邑,宋人伐郑围长葛,引发“长葛之战” [18]  ,其后周郑交恶,大战于长葛,史称“繻葛之战”,长葛亦称“繻葛” [19]  。微信公众号开发

战国时,郑国为韩哀侯所灭,长葛归属于韩(周烈王元年,即前375年),后为魏伐取,长葛归魏,改名长社。

秦始皇统一中国后,在全国范围内推行郡县制,长社始为县,属颍川郡。汉承秦制,长社仍属颍川郡。王莽新朝,改颍川郡为左队,长社属左队。东汉,复西汉旧制,长社属颍川郡。东汉末,行州郡县三级制,长社仍属颍川郡(属豫州),东汉末年,南方黄巾军与东汉官军、地方义兵联军大战于长葛,史称“长社之战”。

自定义圆形进度条

相信你看完2会吐槽,卧槽,这么坑爹,拿个动画来坑人,哈哈,实际开发中都这样,当然上述 这种情况只适用于不用显示进度的场合,如果要显示进度的场合就没用处了,好吧,接下来看下 网上一个简单的自定义圆形进度条!代码还是比较简单,容易理解,又兴趣可以看看,或者进行相关扩展~

运行效果图:

实现代码:

自定义View类:

/**
 * Created by Jay on 2015/8/5 0005.
 */public class CirclePgBar extends View {


    private Paint mBackPaint;
    private Paint mFrontPaint;
    private Paint mTextPaint;
    private float mStrokeWidth = 50;
    private float mHalfStrokeWidth = mStrokeWidth / 2;
    private float mRadius = 200;
    private RectF mRect;
    private int mProgress = 0;
    //目标值,想改多少就改多少
    private int mTargetProgress = 90;
    private int mMax = 100;
    private int mWidth;
    private int mHeight;


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

    public CirclePgBar(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CirclePgBar(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }


    //完成相关参数初始化
    private void init() {
        mBackPaint = new Paint();
        mBackPaint.setColor(Color.WHITE);
        mBackPaint.setAntiAlias(true);
        mBackPaint.setStyle(Paint.Style.STROKE);
        mBackPaint.setStrokeWidth(mStrokeWidth);

        mFrontPaint = new Paint();
        mFrontPaint.setColor(Color.GREEN);
        mFrontPaint.setAntiAlias(true);
        mFrontPaint.setStyle(Paint.Style.STROKE);
        mFrontPaint.setStrokeWidth(mStrokeWidth);


        mTextPaint = new Paint();
        mTextPaint.setColor(Color.GREEN);
        mTextPaint.setAntiAlias(true);
        mTextPaint.setTextSize(80);
        mTextPaint.setTextAlign(Paint.Align.CENTER);
    }


    //重写测量大小的onMeasure方法和绘制View的核心方法onDraw()
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        mWidth = getRealSize(widthMeasureSpec);
        mHeight = getRealSize(heightMeasureSpec);
        setMeasuredDimension(mWidth, mHeight);

    }


    @Override
    protected void onDraw(Canvas canvas) {
        initRect();
        float angle = mProgress / (float) mMax * 360;
        canvas.drawCircle(mWidth / 2, mHeight / 2, mRadius, mBackPaint);
        canvas.drawArc(mRect, -90, angle, false, mFrontPaint);
        canvas.drawText(mProgress + "%", mWidth / 2 + mHalfStrokeWidth, mHeight / 2 + mHalfStrokeWidth, mTextPaint);
        if (mProgress < mTargetProgress) {
            mProgress += 1;
            invalidate();
        }

    }

    public int getRealSize(int measureSpec) {
        int result = 1;
        int mode = MeasureSpec.getMode(measureSpec);
        int size = MeasureSpec.getSize(measureSpec);

        if (mode == MeasureSpec.AT_MOST || mode == MeasureSpec.UNSPECIFIED) {
            //自己计算
            result = (int) (mRadius * 2 + mStrokeWidth);
        } else {
            result = size;
        }

        return result;
    }

    private void initRect() {
        if (mRect == null) {
            mRect = new RectF();
            int viewSize = (int) (mRadius * 2);
            int left = (mWidth - viewSize) / 2;
            int top = (mHeight - viewSize) / 2;
            int right = left + viewSize;
            int bottom = top + viewSize;
            mRect.set(left, top, right, bottom);
        }
    }}

然后在布局文件中加上:

 <com.jay.progressbardemo.CirclePgBar
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>





长葛微信公众号代运营长葛商城小程序开发长葛微信公众号编辑排版设计_长葛微信小程序制作公司—长葛微信公众号小程序托管服务中心


上一条:​禹州微信公众号代运营【禹州商城小程序开发】禹州微信公众号编辑排版设计_禹州微信小程序制作公司—禹州微信公众号小程序托管服务中心
下一条:​灵宝微信公众号代运营【灵宝商城小程序开发】灵宝微信公众号编辑排版设计_灵宝微信小程序制作公司—灵宝微信公众号小程序托管服务中心
网站制作
小程序制作
网站优化
网站开发
400电话办理
网络推广
网站建设
网店装修
微信公众号开发
网页设计
网络公司
域名企业邮箱
服务器空间
网站案例报价
百科问答
编辑排版美工
App软件开发
百度推广
代运营托管
logo设计
网络全网营销
网站备案
网站定制
小程序开发公司
首页
电话
立即预约