diff --git a/app/src/main/java/com/hippo/ehviewer/gallery/glrenderer/GLES20Canvas.java b/app/src/main/java/com/hippo/ehviewer/gallery/glrenderer/GLES20Canvas.java index 88d1cd87c..a1f28ab12 100644 --- a/app/src/main/java/com/hippo/ehviewer/gallery/glrenderer/GLES20Canvas.java +++ b/app/src/main/java/com/hippo/ehviewer/gallery/glrenderer/GLES20Canvas.java @@ -527,7 +527,7 @@ public class GLES20Canvas implements GLCanvas { float sweepAngle, GLPaint paint) { float halfLineWidth = paint.getLineWidth() / 2; fillSector(cx, cy, radiusX + halfLineWidth, radiusY + halfLineWidth, sweepAngle, paint.getColor()); - fillSector(cx, cy, radiusX - halfLineWidth, radiusY - halfLineWidth, sweepAngle, paint.getBackgroundColor()); + fillOval(cx, cy, radiusX - halfLineWidth, radiusY - halfLineWidth, paint.getBackgroundColor()); } private void draw(int type, int offset, int count, float x, float y, float width, float height, diff --git a/app/src/main/java/com/hippo/ehviewer/gallery/ui/ProgressView.java b/app/src/main/java/com/hippo/ehviewer/gallery/ui/ProgressView.java index f89ec7b8a..b2788c218 100644 --- a/app/src/main/java/com/hippo/ehviewer/gallery/ui/ProgressView.java +++ b/app/src/main/java/com/hippo/ehviewer/gallery/ui/ProgressView.java @@ -199,7 +199,7 @@ public class ProgressView extends GLView { int cy = height / 2; float startAngle = (mTrimStart + mTrimOffset) * 360.0f - 90; - float sweepAngle = Math.max(6.0f, (mTrimEnd - mTrimStart) * 360.0f); + float sweepAngle = Math.max(12.0f, (mTrimEnd - mTrimStart) * 360.0f); float rotation = mTrimRotation + startAngle; canvas.save(); diff --git a/app/src/main/java/com/hippo/ehviewer/gallery/ui/Slider.java b/app/src/main/java/com/hippo/ehviewer/gallery/ui/Slider.java index 1e93d69a8..d6c241a75 100644 --- a/app/src/main/java/com/hippo/ehviewer/gallery/ui/Slider.java +++ b/app/src/main/java/com/hippo/ehviewer/gallery/ui/Slider.java @@ -43,7 +43,6 @@ public class Slider extends GLView { private int mDrawProgress; private float mDrawPercent; private int mTargetProgress; - private float mTargetPercent; private boolean mReverse = false; @@ -165,7 +164,6 @@ public class Slider extends GLView { mProgress = progress; mPercent = MathUtils.delerp(mStart, mEnd, mProgress); mTargetProgress = progress; - mTargetPercent = mPercent; startProgressAnimation(mPercent); if (mListener != null) { @@ -297,7 +295,6 @@ public class Slider extends GLView { if (mTargetProgress != progress) { mTargetProgress = progress; - mTargetPercent = percent; startProgressAnimation(percent); } diff --git a/app/src/main/java/com/hippo/ehviewer/gallery/ui/TextView.java b/app/src/main/java/com/hippo/ehviewer/gallery/ui/TextView.java index a89b8c332..c879dcf5f 100644 --- a/app/src/main/java/com/hippo/ehviewer/gallery/ui/TextView.java +++ b/app/src/main/java/com/hippo/ehviewer/gallery/ui/TextView.java @@ -24,9 +24,16 @@ public class TextView extends GLView { text = ""; } if (!text.equals(mText)) { + int oldMinimumWidth = getSuggestedMinimumWidth(); + mText = text; mIndexes = mTextTexture.getTextIndexes(text); - requestLayout(); + + if (getSuggestedMinimumWidth() != oldMinimumWidth) { + requestLayout(); + } else { + invalidate(); + } } } @@ -38,17 +45,29 @@ public class TextView extends GLView { } @Override - protected void onMeasure(int widthSpec, int heightSpec) { - int textWidth = 0; - int textHight = 0; - - if (mTextTexture != null) { - textWidth = (int) mTextTexture.getTextWidth(mIndexes); - textHight = (int) mTextTexture.getTextHeight(); + protected int getSuggestedMinimumWidth() { + if (mTextTexture == null) { + return super.getSuggestedMinimumWidth(); + } else { + return Math.max((int) mTextTexture.getTextWidth(mIndexes) + mPaddings.left + mPaddings.right, + super.getSuggestedMinimumWidth()); } + } - setMeasuredSize(getDefaultSize(Math.max(getSuggestedMinimumWidth(), textWidth), widthSpec), - getDefaultSize(Math.max(getSuggestedMinimumHeight(), textHight), heightSpec)); + @Override + protected int getSuggestedMinimumHeight() { + if (mTextTexture == null) { + return super.getSuggestedMinimumHeight(); + } else { + return Math.max((int) mTextTexture.getTextHeight() + mPaddings.top + mPaddings.bottom, + super.getSuggestedMinimumHeight()); + } + } + + @Override + protected void onMeasure(int widthSpec, int heightSpec) { + setMeasuredSize(getDefaultSize(getSuggestedMinimumWidth(), widthSpec), + getDefaultSize(getSuggestedMinimumHeight(), heightSpec)); } @Override