1

我正在我的 Android 平板电脑上测试 XY 图的绘制。这是运行 ICS 的三星 Galaxy Tab 2 (7")。

我创建了一个 View 子类型,它具有重写的 onDraw 方法。它的工作是简单地将 (x,y) 坐标数组绘制为一系列连接的线段。我有一个表示 y 值的浮点数组,x 值是数组索引。y 值从 -1 扩展到 1,大约有 10 个值。很简单。

目标画布是屏幕上的一个正方形,大约 480 x 480 像素,+1 位于屏幕顶部,-1 位于屏幕底部,第 0 个值位于最左侧,第 N 个值位于屏幕底部极右翼。

因此,沿 X 和 Y 轴从“世界坐标”到“屏幕坐标”的转换是不均匀的。在我的 onDraw 方法中,我对 Canvas 对象应用平移、缩放和另一个平移操作,然后使用细线描边宽度为 0 的画笔继续绘制线段。

结果是一个宽度不是细线的图形。显然,我的缩放操作是加粗线段,使平缓倾斜的线看起来比陡峭的线更粗。当我更改我的世界坐标范围以使它们沿两个轴相等(以匹配方形画布)时,这个问题就消失了。

有趣的是,这个问题出现在平板电脑上,而不是 Android ICS 模拟器上。

对此的任何想法将不胜感激。无论转换是什么,我的偏好是有一个细线图。

4

1 回答 1

0

解决此问题的明显方法是保持画布矩阵不变,自己执行平移/缩放/平移操作(从世界坐标转换为屏幕坐标),然后使用屏幕坐标进行绘图,使用宽度为0。

于 2012-07-05T18:08:07.460 回答