把画图部分代码改为以下代码:
Paint p=new Paint();//新建画笔
p.setColor(Color.rgb(255,255,0));//设置画笔颜色(黄)
p.setStrokeWidth(10);//设置线条宽度
canvas.drawLine(0,100,100,0,p);//从(0,100)到(100,0)用画笔p画线
canvas.drawPoint(100,100,p);//在(100,100)用画笔p画方点
canvas.drawCircle(200,200,50,p);//在(200,200)用画笔p画半径为50的圆
canvas.drawRect(500,510,530,560,p);
//以(500,510)为左上角,(530,560)为右下角用画笔p画矩形
Path pa=new Path();//新建路径pa
pa.moveTo(300,500);//设置路径起始点(300,500)
pa.lineTo(400,520);//增加下一个点(400,520)
pa.lineTo(200,700);//增加下一个点(200,700)
canvas.drawPath(pa,p);//用画笔p画由路径pa围成的封闭多边形
代码
效果
注意drawPoint画的是方形的点。如果要画圆点就用drawCircle,让半径很小。如果只画一个像素点的话就用drawPoint,把画笔p的线条宽度设为1。
path可以用来存储路径,这些点按顺序围成封闭图形,再用drawPath把内部画出来。示例代码中路径pa由3个点组成,所以画出来是三角形。想要更多边形就多增加几个点。
其实各种几何图形都能用path画出来。只需要把路径上的点的坐标算好就行。path是最有用的一种画图方法。
以上我们都是把图形区域内部填充,改变paint的style属性还可以选择画出边线:
Paint.Style.STROKE 只绘制图形轮廓(描边)
Paint.Style.FILL 只绘制图形内容
Paint.Style.FILL_AND_STROKE 既绘制轮廓也绘制内容
以只绘制轮廓为例:
Paint p=new Paint();//新建画笔
p.setColor(Color.rgb(255,255,0));//设置画笔颜色(黄)
p.setStrokeWidth(3);//设置线条宽度
Path pa=new Path();//新建路径pa
pa.moveTo(300,500);//设置路径起始点(300,500)
pa.lineTo(400,520);//增加下一个点(400,520)
pa.lineTo(200,700);//增加下一个点(200,700)
pa.lineTo(300,500);//终点(300,500)
p.setStyle(Paint.Style.STROKE);//设置绘图模式为只画边线
canvas.drawPath(pa,p);//用画笔p画由路径pa围成的封闭多边形
p.setTextSize(200);//设置文字大小
canvas.drawText("春田花花",200,200,p);//画文字
代码
效果
这样就可以用不同的颜色分别画边线和内部了!
网友评论