From 826146032a2d60a219b3047632ef64c708ccc055 Mon Sep 17 00:00:00 2001 From: hepiao <193220847@qq.com> Date: Sun, 27 Sep 2020 17:02:06 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90pref=E3=80=91=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=9D=A1=E5=88=B0=E8=BE=BE=E6=9C=AB=E7=AB=AF?= =?UTF-8?q?=E7=99=BE=E5=88=86=E6=AF=94=E4=BD=8D=E7=BD=AE=E4=B8=8D=E5=8F=98?= =?UTF-8?q?=EF=BC=8C=E4=BD=86=E7=99=BE=E5=88=86=E6=AF=94=E5=80=BC=E4=BB=8D?= =?UTF-8?q?=E5=9C=A8=E5=8F=98=E5=8C=96=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../numberprogressbar/NumberProgressBar.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/com/daimajia/numberprogressbar/NumberProgressBar.java b/library/src/main/java/com/daimajia/numberprogressbar/NumberProgressBar.java index a48b425..48a1e43 100644 --- a/library/src/main/java/com/daimajia/numberprogressbar/NumberProgressBar.java +++ b/library/src/main/java/com/daimajia/numberprogressbar/NumberProgressBar.java @@ -66,6 +66,11 @@ public class NumberProgressBar extends View { */ private String mPrefix = ""; + /** + * The max drawTextWith + */ + private float mMaxDrawTextWidth; + private final int default_text_color = Color.rgb(66, 145, 241); private final int default_reached_color = Color.rgb(66, 145, 241); @@ -266,6 +271,8 @@ private void initializePainters() { mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mTextPaint.setColor(mTextColor); mTextPaint.setTextSize(mTextSize); + + mMaxDrawTextWidth = mTextPaint.measureText(mPrefix + "100" + mSuffix); } @@ -294,7 +301,8 @@ private void calculateDrawRectF() { mDrawReachedBar = true; mReachedRectF.left = getPaddingLeft(); mReachedRectF.top = getHeight() / 2.0f - mReachedBarHeight / 2.0f; - mReachedRectF.right = (getWidth() - getPaddingLeft() - getPaddingRight()) / (getMax() * 1.0f) * getProgress() - mOffset + getPaddingLeft(); + mReachedRectF.right = (getWidth() - getPaddingLeft() - getPaddingRight() - mDrawTextWidth) + / (getMax() * 1.0f) * getProgress() - mOffset + getPaddingLeft(); mReachedRectF.bottom = getHeight() / 2.0f + mReachedBarHeight / 2.0f; mDrawTextStart = (mReachedRectF.right + mOffset); } @@ -307,13 +315,13 @@ private void calculateDrawRectF() { } float unreachedBarStart = mDrawTextStart + mDrawTextWidth + mOffset; - if (unreachedBarStart >= getWidth() - getPaddingRight()) { + if (unreachedBarStart >= getWidth() - getPaddingRight() - mMaxDrawTextWidth) { mDrawUnreachedBar = false; } else { mDrawUnreachedBar = true; mUnreachedRectF.left = unreachedBarStart; - mUnreachedRectF.right = getWidth() - getPaddingRight(); - mUnreachedRectF.top = getHeight() / 2.0f + -mUnreachedBarHeight / 2.0f; + mUnreachedRectF.right = getWidth() - getPaddingRight() - mMaxDrawTextWidth; + mUnreachedRectF.top = getHeight() / 2.0f - mUnreachedBarHeight / 2.0f; mUnreachedRectF.bottom = getHeight() / 2.0f + mUnreachedBarHeight / 2.0f; } }