android 半圆进度条
时间: 2023-06-19 13:06:38 浏览: 141
要实现 Android 中的半圆进度条,可以使用自定义 View 实现。以下是一个简单的示例代码:
```java
public class HalfCircleProgressBar extends View {
private Paint paint;
private RectF rectF;
private int progress;
public HalfCircleProgressBar(Context context) {
super(context);
init();
}
public HalfCircleProgressBar(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
public HalfCircleProgressBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
paint = new Paint();
rectF = new RectF();
progress = 0;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(10);
rectF.set(10, 10, width - 10, height - 10);
paint.setColor(Color.GRAY);
canvas.drawArc(rectF, 180, 180, false, paint);
paint.setColor(Color.BLUE);
canvas.drawArc(rectF, 180, (float) (progress / 100.0 * 180), false, paint);
}
public void setProgress(int progress) {
this.progress = progress;
invalidate();
}
}
```
这个自定义 View 主要是通过绘制两个半圆弧实现的。其中,灰色半圆弧是底部半圆,蓝色半圆弧是进度条。
使用的时候,可以直接在布局文件中添加 HalfCircleProgressBar,然后通过调用 setProgress 方法设置进度条的进度值。
```xml
<com.example.myapplication.HalfCircleProgressBar
android:id="@+id/half_circle_progress_bar"
android:layout_width="200dp"
android:layout_height="100dp"
android:layout_gravity="center"
/>
```
```java
HalfCircleProgressBar progressBar = findViewById(R.id.half_circle_progress_bar);
progressBar.setProgress(50);
```
以上代码仅供参考,具体实现还需要根据需求进行调整。
阅读全文