一只賤賤的小鬼by canvas

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

效果.png
效果.gif

主要步驟

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

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

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;//波動(dòng)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);


    }

最后加入動(dòng)畫效果??刂迫惯叺膹埡停\(yùn)動(dòng)的軌跡以及小手的位置。
代碼下載

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,012評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,257評(píng)論 4 61
  • 1,定義 狀態(tài)模式(State)當(dāng)一個(gè)狀態(tài)的內(nèi)在狀態(tài)改變的時(shí)候允許改變其行為,這個(gè)對(duì)象看起來(lái)像是改變了其類 2,U...
    Kenny丶Mo閱讀 285評(píng)論 0 0
  • 有點(diǎn)害羞不敢寫,就算寫了也有點(diǎn)不敢發(fā)出去。怕寫的不好,怕寫的東西被嘲笑! 一直想著寫什么,猶豫了好久。后來(lái)想著這不...
    胡先生你好閱讀 277評(píng)論 0 1
  • 馬咀紀(jì)行 說(shuō)起鄉(xiāng)村,腦海里浮現(xiàn)的便是農(nóng)舍、牲畜棚圈、小賣部、農(nóng)田等等。想到鄉(xiāng)村,便想到了“田園詩(shī)人”陶淵明,“榆柳...
    孫陽(yáng)閱讀 816評(píng)論 0 3

友情鏈接更多精彩內(nèi)容