必威体育Betway必威体育官网
当前位置:首页 > IT技术

波浪线

时间:2019-10-19 02:44:29来源:IT技术作者:seo实验室小编阅读:81次「手机版」
 

波浪线

public class WaveView extends View {

    private int screenWidth;
    private float xoffset = 0;
    private Path path;
    private Paint paint;

    public WaveView(context context) {
        this(context,null);
    }

    public WaveView(Context context,  AttributeSet attrs) {
        this(context, attrs,-1);
    }

    public WaveView(Context context,  AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        screenWidth = wm.getDefaultdisplay().getWidth();
        paint = new Paint();
        paint.setcolor(Color.RED);
        paint.setAntiAlias(true);
        paint.setStrokeWidth(5);
        paint.setStyle(Paint.Style.STROKE);
        path = new Path();
        ValueAnimator animator = ValueAnimator.ofFloat(0f,screenWidth);
        animator.setDuration(1000);
        animator.setRepeatCount(-1);
        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                xoffset = (float) animation.getAnimatedValue();
                invalidate();
            }
        });
        animator.start();


    }

    @Override
    protected void onmeasure(int widthmeasurespec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        path.reset();
        path.moveTo(0+xoffset, 500);
        path.quadTo(screenWidth / 4+xoffset, 300, screenWidth / 2+xoffset, 500);
        path.moveTo(screenWidth / 2+xoffset, 500);
        path.quadTo(screenWidth / 4 * 3+xoffset, 700, screenWidth+xoffset, 500);

        path.moveTo(0 + xoffset - screenWidth, 500);
        path.quadTo(screenWidth / 4 + xoffset - screenWidth, 300, screenWidth / 2 + xoffset - screenWidth, 500);
        path.moveTo(screenWidth / 2 + xoffset - screenWidth, 500);
        path.quadTo(screenWidth / 4 * 3 + xoffset - screenWidth, 700, screenWidth + xoffset - screenWidth, 500);


        canvas.drawPath(path, paint);

    }
}

<com.bw.fengye.bolangxian.WaveView
        Android:layout_width="match_parent"
        android:layout_height="match_parent" />```

相关阅读

支付宝线下支付1元红包是什么?需要多少积分?

支付宝的用户在不断增多,其功能也在不断强大,它不仅可以用于淘宝购物,还能用于线下支付,还可以兑换红包哦。我们今天要和大家分享的就

Socket编程(C语言实现)——基于TCP协议,基于UDP协议(多线

Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该

【机器学习+sklearn框架】(一) 线性模型之Linear Regres

前言 一、原理   1.算法含义   2.算法特点 二、实现 1.sklearn中的线性回归 2.用Python自己实现算法 三、思考(面试常问) 参

酷狗音乐上线提醒怎么关闭?

酷狗音乐想要关闭上线提醒,该怎么关闭呢?下面我们就来看看详细的教程。1、打开酷狗音乐2、点击右上方的&ldquo;主菜单&rdquo;按钮3

直线检测——Radon变换/霍夫变换/基于快速傅里叶变换

1. 直线检测1.1. Radon直线检测原理基于Radon变换的直线检测的目的就是检测根据角度变化时出现的“局部峰值”,即可以确定直线的方

分享到:

栏目导航

推荐阅读

热门阅读