Android繪制立體風(fēng)格的圓形旋渦

閑來無事玩起了PS

根據(jù) Photoshop制作立體風(fēng)格的圓形旋渦圖形圖標(biāo) 制作了一個超好看的圖片.

PS做得不咋滴

現(xiàn)在用Android代碼寫一個.

    Paint circlePaint = new Paint();
    int centerX = 0, centerY = 0;
    int dark = 0xFF1A766A;//深色
    int light = 0xFFABFEEE;//淺色
    float sR = 100;//小圓半徑
    float bR = 300;//大圓半徑
    float mR = (sR + bR) / 2;//中圓半徑
    float degrees = 0;//旋轉(zhuǎn)角度

    private void drawLeaf(int degrees) {
        Directer.canvas.save();
        Directer.canvas.rotate(degrees, centerX, centerY);
        Path path2 = new Path();
        RectF oval1 = new RectF(centerX - mR, centerY + bR - mR - mR, centerX + mR, centerY + bR);
        path2.addArc(oval1, 90, 180);//剪裁一個半圓
        RectF oval2 = new RectF(centerX, centerY, centerX + mR, centerY + mR);
        path2.addRect(oval2, Path.Direction.CCW);//剪裁剩余不需要的部分
        Directer.canvas.clipPath(path2, Region.Op.DIFFERENCE);
        LinearGradient lg = new LinearGradient(centerX - bR + mR + mR, centerY - mR,
                centerX - bR + mR - mR * 0.7f, centerY + mR * 0.7f, light, dark, Shader.TileMode.MIRROR);
        circlePaint.setShader(lg);//漸變色
        Directer.canvas.drawCircle(centerX - bR + mR, centerY, mR, circlePaint);
        Directer.canvas.restore();
    }


    public void update() {
        degrees = (degrees + 400 * Time.deltaTime) % 360;
        circlePaint.setShader(null);
        circlePaint.setAntiAlias(true);
        Directer.canvas.save();
        Directer.canvas.rotate(degrees, centerX, centerY);
        Path path = new Path();
        path.addCircle(centerX, centerY, sR, Path.Direction.CCW);
        Directer.canvas.clipPath(path, Region.Op.DIFFERENCE);//剪裁中間空心小圓
        circlePaint.setColor(dark);
        Directer.canvas.drawCircle(centerX, centerY, bR, circlePaint);//繪制大圓
        drawLeaf(0);
        drawLeaf(90);
        drawLeaf(180);
        drawLeaf(270);
        Directer.canvas.restore();
    }

完成效果

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

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

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