一只賤賤的小鬼by canvas

一只賤賤的小鬼,信誓旦旦地沖去,灰頭土臉地回來。
代碼下載
靈感來于dribbble,主要是利用貝塞爾曲線畫裙邊,先上圖

效果.png
效果.gif

主要步驟

        drawShadow(canvas);//畫陰影
        drawHead(canvas);//畫頭部
        drawBody(canvas);//畫身體
        drawHand(canvas);//畫小手

重點是畫帶有裙邊的身體,利用path.quadTo,至于二階貝塞爾曲線網上一搜一大把...

private void drawBody(Canvas canvas) {
        path.reset();

        float x = (float) ((rectFGhost.width() / 2 - 15) * Math.cos(5 * Math.PI / 180f));
        float y = (float) ((rectFGhost.width() / 2 - 15) * Math.sin(5 * Math.PI / 180f));

        float x2 = (float) ((rectFGhost.width() / 2 - 15) * Math.cos(175 * Math.PI / 180f));
        float y2 = (float) ((rectFGhost.width() / 2 - 15) * Math.sin(175 * Math.PI / 180f));


        path.moveTo(rectFGhost.left + rectFGhost.width() / 2 - x, rectFGhost.width() / 2 - y + rectFGhost.top);
        path.lineTo(rectFGhost.left + rectFGhost.width() / 2 - x2, rectFGhost.width() / 2 - y2 + rectFGhost.top);
        path.quadTo(rectFGhost.right + wspace / 2, rectFGhost.bottom
                , rectFGhost.right - wspace, rectFGhost.bottom - hspace);


        float a = mskirtH;//(mskirtH/2);

        float m = (rectFGhost.width() - 2 * wspace) / 7f;//波動7次

        for (int i = 0; i < 7; i++) {
            if (i % 2 == 0) {
                path.quadTo(rectFGhost.right - wspace - m * i - (m / 2), rectFGhost.bottom - hspace - a
                        , rectFGhost.right - wspace - (m * (i + 1)), rectFGhost.bottom - hspace);
            } else {
                path.quadTo(rectFGhost.right - wspace - m * i - (m / 2), rectFGhost.bottom - hspace + a
                        , rectFGhost.right - wspace - (m * (i + 1)), rectFGhost.bottom - hspace);

            }
        }

        path.quadTo(rectFGhost.left - 5, rectFGhost.bottom
                , rectFGhost.left + rectFGhost.width() / 2 - x, rectFGhost.width() / 2 - y + rectFGhost.top);


        path.close();
        canvas.drawPath(path, mPaint);


    }

最后加入動畫效果。控制裙邊的張和,運動的軌跡以及小手的位置。
代碼下載

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,076評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,200評論 4 61
  • 1,定義 狀態模式(State)當一個狀態的內在狀態改變的時候允許改變其行為,這個對象看起來像是改變了其類 2,U...
    Kenny丶Mo閱讀 240評論 0 0
  • 有點害羞不敢寫,就算寫了也有點不敢發出去。怕寫的不好,怕寫的東西被嘲笑! 一直想著寫什么,猶豫了好久。后來想著這不...
    胡先生你好閱讀 225評論 0 1
  • 馬咀紀行 說起鄉村,腦海里浮現的便是農舍、牲畜棚圈、小賣部、農田等等。想到鄉村,便想到了“田園詩人”陶淵明,“榆柳...
    孫陽閱讀 734評論 0 3