【发布时间】:2010-05-28 17:45:17
【问题描述】:
我正在尝试查找有关如何更改画布坐标系的信息。我有一些矢量数据想用圆和线之类的东西绘制到画布上,但数据的坐标系与画布坐标系不匹配。
有没有办法将我正在使用的单位映射到屏幕的单位?
我正在绘制一个不占用整个显示器的 ImageView。
如果我必须在每次绘图调用之前进行自己的计算,我如何找到我的 ImageView 的宽度和高度?
我尝试的 getWidth() 和 getHeight() 调用似乎返回了整个画布大小,而不是 ImageView 的大小,这没有帮助。
我看到一些矩阵的东西,这对我有用吗?
我尝试使用“public void scale(float sx, float sy)”,但这更像是像素级缩放,而不是通过扩展每个像素来实现矢量缩放功能。这意味着如果增加尺寸以适应屏幕,线条粗细也会增加。
更新:
经过一些研究,我开始认为没有办法将坐标系更改为其他坐标系。我需要将所有坐标映射到屏幕的像素坐标,并通过修改每个向量来实现。 getWidth() 和 getHeight() 现在似乎对我来说效果更好。我可以说出了什么问题,但我怀疑我不能在构造函数中使用这些方法。
【问题讨论】:
-
是的,getWidth() 和 getHeight() 在构造函数中肯定不起作用。
标签: android drawing canvas coordinate-systems