91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android怎么自定義view貝塞爾曲線

發布時間:2022-06-29 14:21:40 來源:億速云 閱讀:191 作者:iii 欄目:開發技術

這篇文章主要介紹了Android怎么自定義view貝塞爾曲線的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Android怎么自定義view貝塞爾曲線文章都會有所收獲,下面我們一起來看看吧。

貝塞爾曲線

以一個簡單的貝塞爾曲線為例,二階曲線原理

Android怎么自定義view貝塞爾曲線

貝塞爾曲線很多功能都會用到,比如小火箭發射,再比如淘寶的購物車功能

所幸的是Android有封裝好的貝塞爾曲線,我們直接拿過來用就可以了:

//二階貝賽爾 
public void quadTo(float x1, float y1, float x2, float y2) 
public void rQuadTo(float dx1, float dy1, float dx2, float dy2) 
//三階貝賽爾 
public void cubicTo(float x1, float y1, float x2, float y2,float x3, float y3) 
public void rCubicTo(float x1, float y1, float x2, float y2,float x3, float y3)

自定義view代碼如下

public class MyView extends View {
    private Point controlPoint = new Point(200, 200);
    public MyView(Context context) {
        super(context);
    }

    public MyView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        Paint paint = new Paint();
//        畫筆設置描邊
        paint.setStyle(Paint.Style.STROKE);
//        顏色
        paint.setColor(Color.BLACK);
//        描邊寬度
        paint.setStrokeWidth(10);
//路徑
        Path path = new Path();
//        moveTo 不會進行繪制,只用于移動移動畫筆。
        path.moveTo(100, 500);
//繪制貝塞爾曲線,controlPoint.x, controlPoint.y控制點和700, 500終點坐標
        path.quadTo(controlPoint.x, controlPoint.y, 700, 500);
        //繪制路徑
        canvas.drawPath(path, paint);
        //繪制輔助點
        canvas.drawPoint(controlPoint.x,controlPoint.y,paint);

    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_MOVE:
                controlPoint.x = (int) event.getX();
                controlPoint.y = (int) event.getY();
//             invalidate();重繪 刷新
                invalidate();
                break;
        }
        return true;
    }
}

Android怎么自定義view貝塞爾曲線

關于“Android怎么自定義view貝塞爾曲線”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Android怎么自定義view貝塞爾曲線”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尼玛县| 百色市| 焦作市| 辽源市| 柳江县| 道孚县| 宜黄县| 余江县| 威宁| 泸州市| 苏尼特左旗| 遵义县| 东山县| 万全县| 百色市| 镇沅| 丹江口市| 枣强县| 九江县| 郁南县| 邢台县| 克山县| 柘城县| 临颍县| 高州市| 蕉岭县| 阳西县| 安庆市| 铁力市| 略阳县| 武定县| 汕头市| 巢湖市| 岳普湖县| 名山县| 洪雅县| 光泽县| 故城县| 卫辉市| 桦甸市| 贡嘎县|