Android 自定義view畫布API:canvas
canvas在Android自定義View中是一個非常重要的角色。
canvas介紹
假如你想要繪制自己想要的動畫,控件效果,canvas是最適合不過的了。
可以看看canvas內(nèi)部有些什么屬性,掌握這些屬性,就可以動手繪制出我們自己想要的控件效果了。
123456789101112131415161718192021222324252627//畫布顏色
canvas.drawColor()
//矩形繪制
canvas.drawRect(
0
,
0
,
200
,
200
,paint);
//畫文字
canvas.drawText(
"文字"
,
50
,?
50
,?paint);
//繪制圖片
canvas.drawBitmap();
//繪制圓
drawCircle(
200
,?
200
,?
100
,?paint);??
//弧形繪制
canvas.drawArc(RectF?oval,?
float
?startAngle,?
float
?sweepAngle,?
boolean
?useCenter,?Paint?paint);
//畫線
canvas.drawLine(
float
?startX,?
float
?startY,?
float
?stopX,?
float
?stopY,?Paint?paint);
//貝塞爾曲線
paint.setStyle(Style.STROKE);??
Path?path2?=?
new
?Path();????
path2.moveTo(
100
,?
100
);
//設(shè)置Path的起點???/**?
?
*?參數(shù)
1
、
2
:x1,y1為控制點的坐標(biāo)值?
?
*?參數(shù)
3
、
4
:x2,y2為終點的坐標(biāo)值?
?
*/??path2.quadTo(
300
,?
100
,?
400
,?
400
);?
//設(shè)置貝塞爾曲線的控制點坐標(biāo)和終點坐標(biāo)
path2.quadTo(
500
,?
700
,?
800
,?
800
);??
//畫出貝塞爾曲線
canvas.drawPath(path2,?p);
//畫點
canvas.drawPoint(
float
?x,?
float
?y,?Paint?paint)
canvas操作類里面不止上面這些方法,具體可以查看Android的官方文檔:https://developer.android.com/reference/android/graphics/Canvas.html(梯子自備)
canvas除了繪制圖形外,還有一些操作方法:
Canvas平移:
1234567/**?
?
*?畫布向(200,30)方向平移?
?
*??
?
*?parms1:向X軸方向移動200距離?
?
*?parms2:?向Y軸方向移動30距離???
?
*/
?
canvas.translate(
200
,?
30
);
Canvas縮放:
1234/*
*以x軸200y軸200為中心,x軸放大2倍,y軸放大3位
*/
canvas.scale(
2
,?
3
,
200
,
200
);