在學習自定義控件之前,通常要先了解一些基本函數(shù)
- 首先 往Canvas上面draw需要一個Paint。 畫筆常用的函數(shù)如下:
Paint p = new Paint();
//設置畫筆的顏色
p.setColor(Color.parseColor("#2EA4F2"));
//設置畫筆的風格:全部填充FILL 只畫輪廓STROKE
p.setStyle(Paint.Style.STROKE);
//設置畫筆的寬度
p.setStrokeWidth(8);
//設置是否抗鋸齒
p.setAntiAlias(true);
//設置文字大小
p.setTextSize(30);
//測量字符串的長度
int textLength = p.MeasureText("Hello World");
- 有了畫筆,就可以繪制基本圖形,比如要畫一條線
//繪制一條從0,0到100,100的線
canvas.drawLine(0,0,100,100,p);
- 三角形&多邊形是用Path類實現(xiàn)的。Path類提供了點繪制線的功能,如下:
//畫三角形
path.MoveTo(0,0);//給定path的起點
path.LineTo(10,10);//往10,10繪制一條路徑
path.LineTo(5,3);//繼續(xù)從10,10往5,3繪制一條路徑
path.close;//將繪制的線形成封閉空間
canvas.drawPath(path,p);
//畫一個矩形,左上角的坐標為0,0 右下角的坐標為100,50
canvas.drawRect(0,0,100,50,p);
- 如果要畫一個圓角矩形
/一個矩形
RectF rectF = new RectF(0,0,100,50);
//畫一個圓角矩形,大小為rectF,20,20分表表示左邊圓角的半徑和右邊圓角的半徑
canvas.drawRoundRect(RectF,20,20,p);
- 畫圓就更簡單了
//畫一個圓,圓心為50,50 半徑為100
canvas.drawCircle(50,50,100,p);
- **弧形 **注意這里第二個參數(shù),是從三點鐘方向為0°計算,所以想從12點中方向開始繪制,那么就是270°。第四個參數(shù)是決定是否經(jīng)過圓心(自己改變一下這個參數(shù)就知道區(qū)別了)。
//畫一個弧,弧所在矩形為rectF 從270°開始,畫90° 不經(jīng)過圓心
canvas.drawArc(rectF,270,90,false,p);