请在ONDRAW函数中编程,使之完成以下功能: (1) 自定义坐标,将客户区中心点做为坐标中心点,x正方向沿屏幕向左,y轴正方向沿屏幕向上。 (2) 以x轴做为中心线,画一个蓝色的正弦曲线。
时间: 2024-10-13 19:17:56 浏览: 36
在OnDraw函数中编程实现上述功能,需要利用Android Canvas API,并确保你已经设置了一个适配的View或Activity来绘制图形。首先,我们需要获取Canvas对象以及屏幕尺寸。以下是实现这两步的代码:
```java
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas); // 先调用父类的onDraw
// 获取客户区的中心点和屏幕尺寸
int centerX = getWidth() / 2;
int centerY = getHeight() / 2;
float screenWidth = canvas.getWidth();
float screenHeight = canvas.getHeight();
// 设置坐标系,以客户区中心为原点,x正向左,y正向上
canvas.translate(-centerX, -centerY);
// 创建路径并设置颜色
Paint paint = new Paint();
paint.setColor(Color.BLUE); // 蓝色
paint.setStyle(Paint.Style.STROKE); // 线条样式
paint.setStrokeWidth(2f); // 线宽
// 计算正弦曲线的范围和步长
float period = screenWidth * 0.8; // 可调整周期大小
float amplitude = screenHeight * 0.4; // 振幅,可根据需求调整
float increment = period / 100; // 迭代间隔
for (float x = 0; x <= screenWidth; x += increment) {
float y = amplitude * Math.sin(x / period * 2 * Math.PI); // 根据正弦公式计算y值
canvas.drawLine(x, 0, x, y, paint); // 绘制曲线
}
// 最后恢复到原始坐标系
canvas.translate(centerX, centerY);
}
```
阅读全文