在Android手机程序中调用画布绘制类似手机wifi信号,如下图:
红色圆圈为底,灰色弧线为信号,白色弧线覆盖灰色弧线表示信号强度。
//参数设置
private int ox;//绘制起始位置的x坐标
private int oy;//绘制起始位置的y坐标
private int rssilevel;//信号强度级别
// 画笔设置
private Paint paintBeacon = new Paint();//红色圆圈画笔private Paint paintSignal = new Paint();//灰色信号画笔
private Paint paintRssi = new Paint();//白色信号强度画笔
{
paintBeacon.setColor(Color.RED);
paintSignal.setColor(Color.GRAY);
paintSignal.setAntiAlias(true);
paintSignal.setStrokeWidth((float) 7.0);
paintSignal.setStyle(Style.STROKE);
paintRssi.setColor(Color.WHITE);
paintRssi.setAntiAlias(true);
paintRssi.setStrokeWidth((float) 7.0);
paintRssi.setStyle(Style.STROKE);
}
// 画beacon
private void drawBeacon(Canvas canvas) {
canvas.drawCircle(ox, oy, 50, paintBeacon);
for (int i = 4; i >= 0; i--) {
RectF rectf = new RectF(
ox - 90 + 20 * i,
oy - 20 + 15 * i,
ox + 90 - 20 * i,
oy + 100);
canvas.drawArc(rectf, 240, 60, false, paintSignal);
}
for (int i = 4; i >= 5 - rssilevel; i--) {
RectF rectf = new RectF(
ox - 90 + 20 * i,
oy - 20 + 15 * i,
ox + 90 - 20 * i,
oy + 100);
canvas.drawArc(rectf, 240, 60, false, paintRssi);
}
}