畫點:
/**
* 參數(shù)1、2:點的x门粪、y坐標
*/
drawPoint(float x, float y, @NonNull Paint paint) ;//畫一個點
/**
*pts:多個點,每兩個值為一個點。最后個數(shù)不夠兩個的值,忽略抛蚁。
*/
drawPoints(@Size(multiple = 2) @NonNull float[] pts, @NonNull Paint paint)//畫多個點
畫線
/*
* 參數(shù)1:startX
* 參數(shù)2:startY
* 參數(shù)3:stopX
* 參數(shù)4:stopY
* 參數(shù)5:畫筆對象
*/
drawLine(float startX, float startY, float stopX, float stopY, @NonNull Paint paint)// 畫線
/*
* 同時繪制多條線稼病。
* pts:float數(shù)組:每四個一組為一條線绕沈。最后不足四個,就忽略那些值踢故。
* paint:畫筆對象
*/
drawLines(@Size(multiple = 4) @NonNull float[] pts, @NonNull Paint paint)
矩形
/**
* 矩形
* 參數(shù)1:float left
* 參數(shù)2:float top
* 參數(shù)3:float right
* 參數(shù)4:float bottom
*/
drawRect(float left, float top, float right, float bottom, @NonNull Paint paint)
/**
*Rect RectF 矩形區(qū)域
*/
drawRect(@NonNull Rect r, @NonNull Paint paint)
drawRect(@NonNull RectF rect, @NonNull Paint paint)
//圓角矩形
/**
* 矩形
* rect:要繪制的圓角矩形的矩形邊界
* rx:x半徑
* ry:y半徑
* paint:
*/
drawRoundRect(@NonNull RectF rect, float rx, float ry, @NonNull Paint paint)
多邊形
Path path = new Path(); // 路徑對象
path .moveTo(float x, float y) ;//設(shè)置Path的起點
path .lineTo(float x, float y);//可以添加多個點 構(gòu)件多邊形 或曲線
path.close(); // 使終點和起點鏈接文黎,構(gòu)成封閉圖形
drawPath(@NonNull Path path, @NonNull Paint paint)
曲線
/**
* Path類封裝復(fù)合(多輪廓幾何圖形的路徑
* 由直線段*、二次曲線,和三次方曲線殿较,也可畫以油畫耸峭。drawPath(路徑、油漆),要么已填充的或撫摸
* (基于油漆的風(fēng)格),或者可以用于剪斷或畫畫的文本在路徑淋纲。
*/
Path path = new Path(); // 路徑對象
path .moveTo(float x, float y) ;//設(shè)置Path的起點
path .lineTo(float x, float y);//可以添加多個點 構(gòu)件多邊形 或曲線
//.... 可以添加多個點劳闹。構(gòu)成多邊形
canvas.drawPath(path, p);
畫圓
/**
* cx:圓心X
* cy:圓心Y
* radius:半徑R
* paint:畫筆對象
*/
drawCircle(float cx, float cy, float radius, @NonNull Paint paint);
畫橢圓
/*
* oval:矩形區(qū)域
* paint:畫筆對象
*/
canvas.drawOval(oval, p);
畫弧度
/**
* 畫圓弧
* oval:RectF對象。
* startAngle:開始的角度洽瞬。(水平向右為0度順時針反向為正方向)
* sweepAngle:掃過的角度
* useCenter:是否和中心連線
* paint:畫筆對象
*/
drawArc(@NonNull RectF oval, float startAngle, float sweepAngle, boolean useCenter,
@NonNull Paint paint)
畫圖片
/**
* bitmap:bitmap對象
* left:圖像左邊坐標點
* top:圖像上邊坐標點
*/
drawBitmap(@NonNull Bitmap bitmap, float left, float top, @Nullable Paint paint)
畫文字
bottom top可以通過 Paint.FontMetricsInt 對象獲取
Paint.FontMetricsInt fm = paint.getFontMetricsInt();//獲取線
paint.measureText(strPercent)可以獲取文字長度 來計算換行長度 居中起始坐標
根據(jù)文字中線計算文字基線: 文字基線 = 中線+(bottom-top)/2- bottom;
/**
* text:文字
* x:起點
* y,:基線
* paint:畫筆對象
*/
drawText(@NonNull String text, float x, float y, @NonNull Paint paint)
/**
* text:文字
* start:要從第幾個字開始繪制
* end: 要繪制到第幾個文字
* x:起點
* y,:基線
* paint:畫筆對象
*/
drawText(@NonNull String text, int start, int end, float x, float y, @NonNull Paint paint)
/**
* text:文字
* Path :路徑
* hOffset:距離路徑開始位置的偏移量
* vOffset:距離路徑上下的偏移量(可以為負數(shù))
* paint:畫筆對象
*/
drawTextOnPath(@NonNull String text, @NonNull Path path, float hOffset, float vOffset, @NonNull Paint paint)