关于progressX + textWidth 的问题,
如果我现在是已经 progresX+textWidth = mRealWidth , 那么我剩余部分的进度变化,岂不是没法在进度条上面提现出来了么?
如果我现在是已经 progresX+textWidth = mRealWidth , 那么我剩余部分的进度变化,岂不是没法在进度条上面提现出来了么?
2016-09-28
是的,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); }
举报