paint初始化地时候是这么设置的:
paint.setStyle(Paint.Style.STROKE);
别的地方也没有对paint继续style的设置
但是在drawPath的过程中被设置成Fill 这种状况很不确定(部分机子会出现)
不知道是为什么 求解
Android在用画笔的时候有三种Style,分别是
Paint.Style.STROKE 只绘制图形轮廓(描边)
Paint.Style.FILL 只绘制图形内容
Paint.Style.FILL_AND_STROKE 既绘制轮廓也绘制内容
STROKE和FILL_AND_STROKE的粗细是一样的,FILL最细
我Log过Style的值 它没有改变 只是表现成了Fill 的形式
drawPath方法:绘制任意多边形
【功能说明】该方法用于在画布上绘制任意多边形,通过指定Path对象来实现。在Path对象中规划了多边形的路径信息。该方法是绘制任意多边形的主要方法,当然也可以使用drawLines方法来实现,但是drawPath方法更为灵活、方便。
【基本语法】public void drawPath (Path path, Paint paint)
参数说明
path:包含路径信息的Path对象。
paint:绘制时所使用的画笔。
【实例演示】下面通过代码来演示如何在画布上绘制任意多边形。
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
paint.setAntiAlias(true); //设置画笔为无锯齿
paint.setColor(Color.BLACK); //设置画笔颜色
canvas.drawColor(Color.WHITE); //白色背景
paint.setStrokeWidth((float) 3.0); //线宽
paint.setStyle(Style.STROKE);
Path path = new Path(); //Path对象
path.moveTo(50, 100); //起始点
path.lineTo(50, 300); //连线到下一点
path.lineTo(100, 500); //连线到下一点
path.lineTo(400, 500); //连线到下一点
path.lineTo(300, 300); //连线到下一点
path.lineTo(450, 50); //连线到下一点
path.lineTo(200, 200); //连线到下一点
canvas.drawPath(path, paint); //绘制任意多边形
}
在这段代码中,首先设置了Paint画笔的颜色,并设置Canvas画布为白色背景。接着设置画笔的线宽以及空心效果。然后,定义一个Path对象,并通过moveTo方法设置起始点,使用lintTo方法连线到下一点。最后,调用drawPath方法来绘制任意多边形。读者运行这段代码,可以在手机屏幕上看到如图8.21所示的显示效果。
图片:
http://images.51cto.com/files/uploadimg/20120411/123940128.jpg
图8.21 绘制多边形
注意:如果需要绘制一个封闭的多边形,则将最后一点的坐标设置为起始点坐标即可。
就设置了这么多属性 就各位大神帮忙想个招