Android 环形进度条中间显示数值
时间: 2023-08-29 10:04:36 浏览: 53
要在 Android 环形进度条中间显示数值,可以使用自定义视图来实现。首先,创建一个继承自 ProgressBar 的自定义视图类,并覆盖 onDraw 方法。在 onDraw 方法中,先调用父类的 onDraw 方法,然后使用 Canvas 绘制文本。具体代码示例如下:
```java
public class CircleProgressBar extends ProgressBar {
private Paint mTextPaint;
public CircleProgressBar(Context context) {
super(context);
init();
}
public CircleProgressBar(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CircleProgressBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
mTextPaint = new Paint();
mTextPaint.setColor(Color.WHITE);
mTextPaint.setTextSize(50);
mTextPaint.setAntiAlias(true);
mTextPaint.setTextAlign(Paint.Align.CENTER);
}
@Override
protected synchronized void onDraw(Canvas canvas) {
super.onDraw(canvas);
String text = String.valueOf(getProgress());
float x = getWidth() / 2.0f;
float y = getHeight() / 2.0f - ((mTextPaint.descent() + mTextPaint.ascent()) / 2.0f);
canvas.drawText(text, x, y, mTextPaint);
}
}
```
在布局文件中使用该自定义视图类即可:
```xml
<com.example.myapplication.CircleProgressBar
android:layout_width="200dp"
android:layout_height="200dp"
android:max="100"
android:progress="50" />
```
这样,就可以在环形进度条的中间显示当前进度值了。