public class ClockView extends View {private float cx;private float cy;private int radius;private Paint paint;public ClockView(Context context) {this(context, null);}public ClockView(Context context, AttributeSet attrs) {this(context, attrs, 0);}public ClockView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}/*** 对View进行绘制* @param canvas 画布对象*/@Overrideprotected void onDraw(Canvas canvas) {Draw(canvas);//初始化参数cx = getWidth() / 2f;cy = getHeight() / 2f;radius = Math.min(getWidth(), getHeight()) / 2 - 10;paint = new Paint();//绘制表盘paint.setColor(Color.BLACK);//画笔的颜色paint.setStrokeWidth(5);//画笔粗细paint.setStyle(Paint.Style.STROKE);//空心画笔canvas.drawCircle(cx, cy, radius, paint);//绘制圆心paint.setStyle(Paint.Style.FILL);paint.setColor(Color.RED);canvas.drawCircle(cx, cy, radius / 10, paint);//拿到当前时间int hour = Instance().get(Calendar.HOUR);int minute = Instance().get(Calendar.MINUTE);int second = Instance().get(Calendar.SECOND);float fhour = Instance().get(Calendar.HOUR) + minute / 60f;//绘制指针paint.setStrokeWidth(20);paint.setColor(Color.RED);paint.setStrokeCap(Paint.Cap.ROUND);canvas.drawLine(cx, cy, (float) (cx + radius * 0.5 * Math.Radians(fhour * 30))),(float) (cy - (radius * 0.5 * Radians(fhour * 30)))), paint);paint.setStrokeWidth(10);paint.setColor(Color.BLUE);canvas.drawLine(cx, cy, (float) (cx + radius * 0.6 * Math.Radians(minute * 6))),(float) (cy - (radius * 0.6 * Radians(minute * 6)))), paint);paint.setStrokeWidth(5);paint.setColor(Color.GREEN);canvas.drawLine(cx, cy, (float) (cx + radius * 0.7 * Math.Radians(second * 6))),(float) (cy - (radius * 0.7 * Radians(second * 6)))), paint);//绘制数字paint.setTextSize(50);paint.setColor(Color.BLACK);for (int i = 1; i < 13; i++) {float tx = asureText(i + "") / 2;canvas.drawText(i + "", (float) (cx + radius * 0.85 * Math.Radians(i * 30))) - tx,(float) (cy - (radius * 0.85 * Radians(i * 30)))) + 20, paint);}//每秒刷新一次postInvalidateDelayed(1000);//1000毫秒后调onDraw()刷新自己}
}
本文发布于:2024-01-29 01:25:29,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170646273411719.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |