用一定的像素宽度画一条线

| 我想在画布上使用具有一定宽度(以像素为单位,或者理想情况下为“ dp”)的线条显示X / Y数据。我已经尝试过Paint的setStrokeWidth(..)方法,的确确实改变了线宽,但这不是我所需要的。在我的情况下,我已使用matrix.preScale(xScale,yScale)将画布缩放为“真实工程单位”,因此X比例代表0到100,Y代表0到1。setStrokeWidth()方法Paint对象似乎设置了笔触,使其遵循我的矩阵preScale()设置。换句话说,水平线绘制得很细,垂直线绘制得很粗。 有没有一种方法可以配置“画图”,以便无论画线的方向如何,其宽度都是一致的像素数? 我尝试过定义一个Drawable,它是一条线,并从中创建一个ShapeDrawable,然后将其应用于Paint,但是在运行时遇到了一些讨厌的类转换错误。这使我认为这是错误的解决方法。但是也许我放弃得太早了。 我知道有很多可用的Android绘图/绘图程序包,有些带有源代码,但是我真的想在这里了解该平台,而不是使用第三方解决方案。 感谢您的提示! 丰富     
已邀请:
例如在Android上:paint.setStrokeWidth(3);此方法设置线宽。在这种情况下,线宽为3像素。我正在BlackBerry上搜索这种方法。 尝试这个 :
    Graphics.setColor(Color.RED);
    Graphics.setStrokeWidth(20);
    Graphics.drawRect(0, 0, 100, 100);
它们位于net.rim.device.api.ui.Graphics软件包中。     
将叠加层绘制到地图上时,我必须做类似的事情。 由于用户可以使用多点触摸来动态缩放地图,因此当我进入绘制例程时,我会计算x和y轴的缩放因子,将其应用于画布,绘制地图,然后反转此缩放因子并应用覆盖线的宽度。因此,画布被缩放,覆盖层被缩放,然后反缩放,因此它们实际上是固定宽度。 我发现这非常有效,并且没有真正的性能影响。     

要回复问题请先登录注册