anroid怎么自定义圆形progressbar

2025-05-18 04:49:34
推荐回答(1个)
回答1:

可以先做一个正方形的progressbar,然后progressbar有个setRegion()的方法可以用来设置区域,定义一个新的Region变量,声明时使用add方法添加一个画圆的函数就好了,画圆函数如下:
static int[] circle(int r, int offsetX, int offsetY) {
int[] polygon = new int[8 * r + 4];
for (int i = 0; i < 2 * r + 1; i++) {
int x = i - r;
int y = (int) Math.sqrt(r * r - x * x);
polygon[2 * i] = offsetX + x;
polygon[2 * i + 1] = offsetY + y;
polygon[8 * r - 2 * i - 2] = offsetX + x;
polygon[8 * r - 2 * i - 1] = offsetY - y;
}
return polygon;
}