Get the App
SLTechnology News&Howtos  ›  Development  › 

How to use progressbar in Android to realize with bottom indicator and text progress bar

Shulou Source: shulou.com Published: 2022-05-31 21:07:10 11月12日 Update

This article mainly explains "how to use progressbar to achieve with bottom indicator and text progress bar in Android". Interested friends may wish to have a look. The method introduced in this paper is simple, fast and practical. Let the editor take you to learn "how to use progressbar in Android with bottom indicator and text progress bar"!

List the source code:

Public class TextProgressBar extends LinearLayout {String text; Paint mPaint; private Rect textRect; private Bitmap bitmap; private ProgressBar progressBar; int progress; int proWidth, proHeight; public TextProgressBar (Context context, AttributeSet attrs, int defStyleAttr) {super (context, attrs, defStyleAttr); initText (context);} public TextProgressBar (Context context) {super (context); initText (context);} public TextProgressBar (Context context, AttributeSet attrs) {super (context, attrs); initText (context) } @ Override protected synchronized void onDraw (Canvas canvas) {super.onDraw (canvas); progress = progressBar.getProgress (); if (progress = = 0 | progress = = progressBar.getMax () return; this.mPaint.getTextBounds (this.text, 0, this.text.length (), textRect); proWidth = progressBar.getWidth (); proHeight = progressBar.getHeight () / / drawing indicator int bitmapx = (int) (progressBar.getLeft () + proWidth * ((progress * 1f) / progressBar.getMax ())-bitmap.getWidth () / 2; int bitmapy = proHeight + bitmap.getHeight () / 2; if (bitmapx

< 0) bitmapx = progressBar.getLeft(); if(bitmapx >

ProgressBar.getRight ()-bitmap.getWidth () bitmapx = progressBar.getRight ()-bitmap.getWidth (); canvas.drawBitmap (bitmap, bitmapx, bitmapy, mPaint); / / write int tvx = (int) (progressBar.getLeft () + proWidth * ((progress * 1f) / progressBar.getMax ())-textRect.centerX (); int tvy = proHeight + bitmap.getHeight () * 2 + 4; if (tvx)

< 0) tvx = progressBar.getLeft(); if(tvx >

= progressBar.getRight ()-textRect.width () tvx = progressBar.getRight ()-textRect.width (); canvas.drawText (this.text, tvx, tvy + bitmap.getHeight (), this.mPaint);} / / initialize, brush private void initText (Context context) {View inflate = View.inflate (context, R.layout.textprogressbar, this); progressBar = (ProgressBar) inflate.findViewById (R.id.progressbar1); progressBar.setProgress (50); setWillNotDraw (false); this.mPaint = new Paint () This.mPaint.setColor (getResources (). GetColor (R.color.red)); this.mPaint.setTextSize (20); textRect = new Rect (); text = "0"; bitmap = BitmapFactory.decodeResource (context.getResources (), R.mipmap.progress_top);} public void setProgress (int progress) {progressBar.setProgress (progress);} public void setText (String str) {text = str }} at this point, I believe you have a deeper understanding of "how to use progressbar to achieve with a bottom indicator and text progress bar in Android". You might as well do it in practice! Here is the website, more related content can enter the relevant channels to inquire, follow us, continue to learn!

Tags: Instructions indicators bottom text progress content learning practical deeper interest practical practical easy to operate method more friends source code paintbrush website channel Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Docker macOS OPPO Reno Shulou Technology NVidia