Android自定义水波纹

Android自定义水波纹
view_WaterView

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毫秒执行一下

    }
}

在布局文件中使用





    



你可能感兴趣的:(Android自定义水波纹)