Android环形渐变色进度条

作者: townof1997 | 来源:发表于2019-07-03 22:24 被阅读71次

那就是颜色渲染.
在Android中,提供了Shader类专门用来渲染图像以及一些几何图形。
Shader类包括了5个直接子类,分别为:

BitmapShader
ComposeShader
LinearGradient
RadialGradient
SweepGradient

其中,BitmapShader用于图像渲染;ComposeShader用于混合渲染;LinearGradient用于线性渲染;RadialGradient用于环形渲染;而SweepGradient则用于梯度渲染。这里使用的是LinearGradient,线性渲染.
LinearGradient的作用是实现某一区域内颜色的线性渐变效果。
LinearGradient的函数原型为:

public LinearGradient (float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile);

其中,参数x0表示渐变的起始点x坐标;参数y0表示渐变的起始点y坐标;参数x1表示渐变的终点x坐标;参数y1表示渐变的终点y坐标;参数colors表示渐变的颜色数组;参数positions用来指定颜色数组的相对位置;参数tile表示平铺方式。
通常,参数positions设为null,表示颜色数组以斜坡线的形式均匀分布。
  OK,所以现在需要给圆的画笔设置Shader

LinearGradient gradient = new LinearGradient(mWidth /2,0, mWidth /2, mHeight,RATE_COLORS,null, Shader.TileMode.MIRROR);
mPaint.setShader(gradient);
mPaint.setMaskFilter(new BlurMaskFilter(15, BlurMaskFilter.Blur.SOLID));

这基本就完成了,至于省下的进度值和V等级就简单许多了

//绘制等级

        mTxtPaint.setAntiAlias(true);
        mTxtPaint.setStrokeWidth(mTxtStrokeWidth);
        mTxtPaint.setTextSize(100);
        mTxtPaint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD_ITALIC));
        int strWidth = (int) mTxtPaint.measureText(mLevel,0,mLevel.length());
        int strHeight = 200;
        mTxtPaint.setStyle(Paint.Style.FILL);
        mTxtPaint.setColor(Color.WHITE);
        canvas.drawText(mLevel,mWidth/2 - strWidth/2,mHeight/2 + strHeight/2 + 50,mTxtPaint);
    // 绘制进度文案显示
        mTxtPaint.setAntiAlias(true);
        mTxtPaint.setStrokeWidth(mTxtStrokeWidth);
        mTxtPaint.setTypeface(Typeface.DEFAULT);
        String text = (int) mProgress + "/" + (int) mMaxProgress;
        float textHeight = mHeight / 8;
        mTxtPaint.setTextSize(textHeight);
        int textWidth = ((int) mTxtPaint.measureText(text, 0, text.length()));
        mTxtPaint.setStyle(Paint.Style.FILL);
        mTxtPaint.setColor(Color.YELLOW);
        canvas.drawText(text, mWidth / 2 - textWidth / 2, mHeight / 2 + textHeight / 2, mTxtPaint);

Android环形渐变色进度条
https://www.cnblogs.com/androidsuperman/p/5021872.html
Android环形进度条颜色渐变效果
https://www.jianshu.com/p/0c7dca38207c

相关文章

网友评论

    本文标题:Android环形渐变色进度条

    本文链接:https://www.haomeiwen.com/subject/iwyhhctx.html