为了账号安全,请及时绑定邮箱和手机立即绑定

关于progressX + textWidth 的问题,

如果我现在是已经 progresX+textWidth = mRealWidth , 那么我剩余部分的进度变化,岂不是没法在进度条上面提现出来了么?

正在回答

1 回答

是的,textWidth和mTextOffset 需要暂用空间,这种方法会导致最后变化不会在进度条上产生变化,但是文本会变化。如果先从mRealWidth中减去textWidth和mTextOffset。在没到100%以前,进度条后面有空白,如果是动画n%到100%。进度条和数字都会变化。但是显示效果不如之前的。附上减去之后的代码,去体会下

        String text = getProgress() + "%";
        float radio = getProgress() * 1.0f / getMax();
        int textWidth = (int) mPaint.measureText(text);
        float realWidth = mRealWidth - textWidth - mTextOffset;
        float progressX = radio * realWidth;

        if (progressX > 0){
            mPaint.setColor(mRechColor);
            mPaint.setStrokeWidth(mRechHeight);
            canvas.drawLine(0,0,progressX,0,mPaint);
        }

        mPaint.setColor(mTextColor);
        float y = (int) (- (mPaint.ascent() + mPaint.descent()) / 2);
        float textStartX = progressX + mTextOffset / 2;
        canvas.drawText(text,textStartX,y,mPaint);

        float startX = progressX + mTextOffset + textWidth;
        if (startX < realWidth){
            mPaint.setColor(mUnRechColor);
            mPaint.setStrokeWidth(mUnRechHeight);
            canvas.drawLine(startX,0,realWidth,0,mPaint);
        }


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android-打造炫酷进度条
  • 参与学习       30849    人
  • 解答问题       59    个

Android开发中各种各样的自定义进度条介绍,让你的APP更炫酷

进入课程

关于progressX + textWidth 的问题,

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信