Android自訂進度條-帶文本(文字進度)的水平進度條(ProgressBar)

來源:互聯網
上載者:User

標籤:android   style   c   class   blog   code   

/**  * 帶文本提示的進度條  */public class TextProgressBar extends ProgressBar {     private String text;     private Paint mPaint;       public TextProgressBar(Context context) {         super(context);         initText();     }       public TextProgressBar(Context context, AttributeSet attrs, int defStyle) {         super(context, attrs, defStyle);         initText();     }       public TextProgressBar(Context context, AttributeSet attrs) {         super(context, attrs);         initText();     }       @Override    public void setProgress(int progress) {         setText(progress);         super.setProgress(progress);       }       @Override    protected synchronized void onDraw(Canvas canvas) {         super.onDraw(canvas);         Rect rect = new Rect();         this.mPaint.getTextBounds(this.text, 0, this.text.length(), rect);         int x = (getWidth() / 2) - rect.centerX();         int y = (getHeight() / 2) - rect.centerY();         canvas.drawText(this.text, x, y, this.mPaint);     }       // 初始化,畫筆     private void initText() {         this.mPaint = new Paint();         this.mPaint.setAntiAlias(true);         this.mPaint.setColor(Color.WHITE);       }       // 設定文字內容     private void setText(int progress) {         int i = (int) ((progress * 1.0f / this.getMax()) * 100);         this.text = String.valueOf(i) + "%";     } }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.