自定义水波纹

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

    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值