Android 根据百分比(渐变)用不同颜色填充画布空心圆

Android 根据百分比(渐变)用不同颜色填充画布空心圆,android,canvas,android-progressbar,Android,Canvas,Android Progressbar,我正试图根据完成任务的百分比,用不同的颜色组合来制作圆形动画,但当我试图改变绘画的颜色时,整个圆形的颜色似乎都在改变,如果有人能引导我朝着正确的方向前进,那将是一个极大的帮助。 下面是Canvas类的Draw方法 @Override protected synchronized void onDraw(Canvas canvas) { canvas.drawArc(mCircleBounds, 110, 320 , false, mBackgroundColor

我正试图根据完成任务的百分比,用不同的颜色组合来制作圆形动画,但当我试图改变绘画的颜色时,整个圆形的颜色似乎都在改变,如果有人能引导我朝着正确的方向前进,那将是一个极大的帮助。 下面是Canvas类的Draw方法

@Override
protected synchronized void onDraw(Canvas canvas) {             
    canvas.drawArc(mCircleBounds, 110, 320 , false, mBackgroundColorPaint);     
    int prog = getProgress();
    float scale = getMax() > 0 ? (float)prog/getMax() *320: 0;
    if(mHasShadow)
        mProgressColorPaint.setShadowLayer( 3, 0, 1, mShadowColor);

    canvas.drawArc(mCircleBounds, 110, scale , false, mProgressColorPaint);

    if(!TextUtils.isEmpty(mTitle)){
        int xPos =  (int)(getMeasuredWidth()/2 - mTitlePaint.measureText(mTitle) / 2);
        int yPos = (int) (getMeasuredHeight()/2);   

        float titleHeight = Math.abs(mTitlePaint.descent() + mTitlePaint.ascent());
        if(TextUtils.isEmpty(mSubTitle)){
            yPos += titleHeight/2;
        }
        canvas.drawText(mPercentageIndicator, xPos, yPos, mSubtitlePaint);      
    }   
    super.onDraw(canvas);
}
下面是指向style.xml的链接

<style name="Widget.ProgressBar.CircularProgressBar" parent="Widget">
    <item name="hasShadow">true</item>
    <item name="strokeWidth">55</item>       
    <item name="PercentageCounter"></item>
    <item name="subtitle"></item>
</style>

真的
55

请帮我解决这个问题:(非常感谢您的帮助,或者为我指引正确的方向,谢谢

正确的方向?您没有定义您想要什么achieve@pskink:我正在尝试根据百分比设置不同颜色的圆圈动画,例如,当百分比为0-40时,我希望圆圈的动画颜色为蓝色,下一个20%为黄色,最后一个为红色,但我失败得很惨,我最终改变了整个颜色而不是把它们混在一起,所以我能解决这个问题吗?使用RadialGradient或SweepGradientokie,让我试试:)@pskink:Thankuu这么多,你救了我一天!Thankuu这么多:D