課程
/移動開發(fā)
/Android
/Android-打造炫酷進度條
如果我現(xiàn)在是已經(jīng) progresX+textWidth = mRealWidth , 那么我剩余部分的進度變化,豈不是沒法在進度條上面提現(xiàn)出來了么?
2016-09-28
源自:Android-打造炫酷進度條 3-2
正在回答
是的,textWidth和mTextOffset 需要暫用空間,這種方法會導(dǎo)致最后變化不會在進度條上產(chǎn)生變化,但是文本會變化。如果先從mRealWidth中減去textWidth和mTextOffset。在沒到100%以前,進度條后面有空白,如果是動畫n%到100%。進度條和數(shù)字都會變化。但是顯示效果不如之前的。附上減去之后的代碼,去體會下
????????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); ????????}
舉報
Android開發(fā)中各種各樣的自定義進度條介紹,讓你的APP更炫酷
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-09-30
是的,textWidth和mTextOffset 需要暫用空間,這種方法會導(dǎo)致最后變化不會在進度條上產(chǎn)生變化,但是文本會變化。如果先從mRealWidth中減去textWidth和mTextOffset。在沒到100%以前,進度條后面有空白,如果是動畫n%到100%。進度條和數(shù)字都會變化。但是顯示效果不如之前的。附上減去之后的代碼,去體會下