自定义猜画小歌水波纹背景

作者: 一叶知秋yi | 来源:发表于2018-07-23 01:11 被阅读39次
猜画小歌.gif

最近被朋友圈刷屏的猜画小歌火极一时,我们当然要去玩一玩了,不过作为一个灵魂画师,基本画不对几张图就是了。不过里面那个倒计时的水波纹效果的进度桶还是有点意思的,来自定义View来写写看了。
先看效果图


进度View.gif

动画并不复杂,就是一个水波纹特效,同时,水面不断往上升。水波纹特效我们肯定要用贝塞尔曲线来绘制,图中有两条水波纹,一条向左,一条向右,所以定义控制点的时候,一条是从从做到右,另一条是从右到左。

        canvas.save();

        paint.setColor(Color.parseColor("#8B9AAF"));
        paint.setStyle(Paint.Style.FILL);

        path.reset();
        path2.reset();

        float mCenterY = getHeight(); //以屏幕最低端为起点
        float mWaveLength = 1000F; //水波纹的波长
        float yRate = 2F;
        float amplitude = 60F;  //振幅

        int mWaveCount = (int) Math.round(getWidth() / mWaveLength + 1.5);

        float xPosition = (position*10)%mWaveLength; //动画的控制变量,这个X方向的

        path.moveTo(-mWaveLength + xPosition, mCenterY - position*yRate);
        path2.moveTo(mWaveLength - xPosition + getWidth(), mCenterY - position*yRate);

        for(int i = 0; i <  mWaveCount; i++) {

            float x1 = (-mWaveLength * 3 / 4) + (i * mWaveLength) + xPosition;
            float y1 = mCenterY + amplitude - position*yRate;
            float x2 = (-mWaveLength / 2) + (i * mWaveLength) + xPosition;
            float y2 = mCenterY-position*yRate;
            float x3 = (-mWaveLength / 4) + (i * mWaveLength) + xPosition;
            float y3 = mCenterY - amplitude - position*yRate;
            float x4 = i * mWaveLength + xPosition;
            float y4 = mCenterY-position*yRate;

            path.quadTo(x1, y1, x2, y2);
            path.quadTo(x3, y3, x4, y4);

            path2.quadTo(-x1+getWidth(), y1, -x2+getWidth(), y2);
            path2.quadTo(-x3+getWidth(), y3, -x4+getWidth(), y4);

        }

        path.lineTo(getWidth(), getHeight());
        path.lineTo(0, getHeight());

        path2.lineTo(getWidth(), getHeight());
        path2.lineTo(0, getHeight());
        path.close();
        path2.close();

        paint.setXfermode(mode);

        canvas.drawPath(path2, paint);
        paint.setColor(Color.parseColor("#E9ECFA"));

        canvas.drawPath(path, paint);

        canvas.restore();

以上就是代码了,有需要的可以研究下。

相关文章

  • 自定义猜画小歌水波纹背景

    最近被朋友圈刷屏的猜画小歌火极一时,我们当然要去玩一玩了,不过作为一个灵魂画师,基本画不对几张图就是了。不过里面那...

  • 猜画小歌

    “猜画小歌” 是Google在2018年7月发布首款微信小程序。 此款小程序为你画我猜的玩法,用户在限定时间内根据...

  • 与谷歌AI玩你画我猜,根本停不下来!

    谷歌今日推出了一款名为猜画小歌的微信小程序,瞬间就占领了朋友圈。 猜画小歌由来自 Google AI 的神经网络驱...

  • 猜画小歌(攻略)

    已经玩疯了……目前纠结在鹦鹉、牛!更新中...... 小伙伴们可以评论求答案,会画的小伙伴可以友情帮助一下~ 话不...

  • 〖46〗小歌猜画

    日记46/云飞泉跃 已经玩了两天了。 游戏给你一个词,你负责在几十秒内画出,边画智能机器人边猜。通常主要特征画出来...

  • 灵魂画手不只有猜画小歌!

    猜画小歌刷屏! 小评被大家的灵魂画作秀了一脸懵:灵魂画手萌驻扎的阵地可多啦,不明白横空出世的猜画小歌HING点在到...

  • 猜画小歌(google AI)——刷屏小程序的一些思考

    猜画小歌(google AI) ——刷屏小程序的一些思考 亮点: 1. 想当年“你画我猜”非常火,这次变成你画AI...

  • 脑洞28:谷歌携小程序归来是否令你充满期待?

    背景: 昨日谷歌发布微信小程序 猜画小歌,瞬间引爆,单日DAU近百万,累积生成作品数千万。时隔多年谷歌在中国内地发...

  • 推荐—小程序

    【二手书回收】 多抓鱼 闲鱼 【休闲】 猜画小歌 生命密码助手

  • 小画儿~灯塔

    补上周落下的小画~灯塔。由于以前没注意过它的形象,那天在猜画小歌游戏时,竟画不准它的大致样子,惹得人工智能说“你画...

网友评论

    本文标题:自定义猜画小歌水波纹背景

    本文链接:https://www.haomeiwen.com/subject/bgfdmftx.html