package com.bawei.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;
public class WaterView extends View {
private Paint mpaint;
private Path mpath;
private float xM;
public WaterView(Context context) {
super(context);
init(context);
}
public WaterView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
// 初始化 画笔 路径
private void init(Context context) {
mpath = new Path(); // @路径
mpaint = new Paint(); // @画笔
mpaint.setColor(Color.RED); // 设置颜色
mpaint.setStrokeWidth(2); // 设置宽度
mpaint.setAntiAlias(true);// 设置抗锯齿
mpaint.setStyle(Paint.Style.STROKE);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mpath.reset(); // 刷新
// 记录开始位置 getLeft() 从左开始
mpath.moveTo(getLeft(),getBottom());
// 记录一下波动的位置
float mPi = (float) (Math.PI*5/getRight()); // 获取每一个宽度值占得度数
xM-=0.5f;
for(int x=0;x<=getRight();x+=20){
mpath.lineTo(x, (float) (6*Math.cos(mPi*x+xM))+10);
}
// 记录结束位置
mpath.lineTo(getRight(),getBottom());
canvas.drawPath(mpath,mpaint);
postInvalidateDelayed(20); // 定时刷新每隔20毫秒执行一下
}
}