Style[progresbar]: internal text padding

This commit is contained in:
Mathias-Boulay 2023-05-19 22:08:11 +02:00
parent 159bb5e336
commit 324f62f3ca
2 changed files with 8 additions and 1 deletions

View File

@ -132,6 +132,7 @@ public class ProgressLayout extends ConstraintLayout implements View.OnClickList
public LayoutProgressListener(String progressKey) {
this.progressKey = progressKey;
textView = new TextProgressBar(getContext());
textView.setTextPadding(getContext().getResources().getDimensionPixelOffset(R.dimen._6sdp));
params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, getResources().getDimensionPixelOffset(R.dimen._20sdp));
params.bottomMargin = getResources().getDimensionPixelOffset(R.dimen._6sdp);
ProgressKeeper.addListener(progressKey, this);

View File

@ -16,6 +16,8 @@ import androidx.core.content.res.ResourcesCompat;
import net.kdt.pojavlaunch.R;
public class TextProgressBar extends ProgressBar {
private int mTextPadding = 0;
public TextProgressBar(Context context) {super(context, null, android.R.attr.progressBarStyleHorizontal); init();}
public TextProgressBar(Context context, AttributeSet attrs) {super(context, attrs, android.R.attr.progressBarStyleHorizontal); init();}
@ -44,7 +46,7 @@ public class TextProgressBar extends ProgressBar {
protected synchronized void onDraw(Canvas canvas) {
super.onDraw(canvas);
mTextPaint.setTextSize((float) ((getHeight()- getPaddingBottom() - getPaddingTop()) * 0.55));
int xPos = (int) Math.min(getProgress() * getWidth() / getMax(), getWidth() - mTextPaint.measureText(mText));
int xPos = (int) Math.max(Math.min(getProgress() * getWidth() / getMax(), getWidth() - mTextPaint.measureText(mText)) - mTextPadding, mTextPadding);
int yPos = (int) ((getHeight() / 2) - ((mTextPaint.descent() + mTextPaint.ascent()) / 2)) ;
canvas.drawText(mText, xPos, yPos, mTextPaint);
@ -59,4 +61,8 @@ public class TextProgressBar extends ProgressBar {
mText = text;
invalidate();
}
public final void setTextPadding(int padding){
mTextPadding = padding;
}
}