自定义带百分比进度条
16lz
2021-01-26
一、效果图
二、布局文件
activity_main.xml
progressbar_pd.xml
<?xml version="1.0" encoding="utf-8"?>
MyProgress.java
package com.johnny.myprogress;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.util.AttributeSet;import android.widget.ProgressBar;public class MyProgress extends ProgressBar {String text;Paint mPaint;public MyProgress(Context context) {super(context);// TODO Auto-generated constructor stubSystem.out.println("1");initText();}public MyProgress(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stubSystem.out.println("2");initText();}public MyProgress(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubSystem.out.println("3");initText();}@Overridepublic synchronized void setProgress(int progress) {// TODO Auto-generated method stubsetText(progress);super.setProgress(progress);}@Overrideprotected synchronized void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);// this.setText();Rect rect = new Rect();this.mPaint.getTextBounds(this.text, 0, this.text.length(), rect);//int x = (getWidth() / 2) - rect.centerX();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.setColor(Color.WHITE);this.mPaint.setTextSize(18);// 去掉锯齿this.mPaint.setFlags(Paint.ANTI_ALIAS_FLAG);}private void setText() {setText(this.getProgress());}// 设置文字内容private void setText(int progress) {int i = (progress * 100) / this.getMax();this.text = String.valueOf(i) + "%";}}
MainActivity.java
package com.johnny.myprogress;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}}
更多相关文章
- android 状态栏字体颜色设置 黑色 anctivity+dialog
- andorid底部菜单导航
- imx515 开发板Android源代码编译过程
- 设置背景颜色
- GLSurfaceView使用之第二篇画三角形
- AChartEngine应用之PieChart(饼图)
- Android(安卓)屏蔽Home键
- Android设置手机音量
- android 之 3G/gprs