给定相同的坐标时,如何在两个不同的位置绘制drawText()和drawRect()?

时间:2016-03-26 10:57:22

标签: android canvas paint drawrect drawtext

我尝试在屏幕上绘制文字,然后在同一位置放置一个矩形,以便知道用户何时在其中点击(并点击文字)。问题是当我将文本放在屏幕上的一个位置并且矩形位于同一位置时,它显然不在同一位置。我需要在某处设置一些设置吗?

private final String[] options = {"Start", "High Scores", "Help", "Quit"};

public void draw(final Canvas g)
{

    for (int i = 0; i < options.length; i++)
    {
        width = HORIZONTALOFFSET * 3 + spaceInvadersTitle.getWidth();
        height = GamePanel.getScreenHeight() / 4 - (75 * 2 + TEXT_SIZE) / 2 + i * 75;

        rect[i] = new Rect(width, height, width + 325, height + TEXT_SIZE);
        g.drawRect(rect[i], paint);
        g.drawText(options[i], width, height, paint);
    }
}

misaligned rectangles http://i66.tinypic.com/29v0vfr.png

仅供参考&#34;宽度&#34;和&#34;身高&#34;更像是x和y-coords。水平对齐不是问题 - 只是垂直。如果您从代码中注意到,我设置了drawText的起始x和y坐标,并且drawRect设置了相同的确切位置,但这并不是他们如何显示屏幕。相反,似乎drawText使用该位置作为左下角锚点或类似的东西。它是如何工作的?如果是这样,我该如何改变呢?

此外,如果您对用户点击绘制文本时如何进行聆听有任何建议,我会全力以赴。这是我能想到的最简单的方法,以及我如何在常规桌面Java中实现它。

0 个答案:

没有答案