0

我正在为马里奥或洛克人等 Android 开发横向卷轴游戏,但我遇到了一个非常奇怪的错误,我无法在任何地方找到任何信息。我在相对视图顶部的屏幕上有我的主角(一个 ImageView)。该视图在屏幕底部只有图像视图和 3 个按钮。我使用 setX() 和 setY() 在屏幕上移动图像,图像在 X 方向上正确移动,但由于某种原因,Y 坐标总是偏离 32。我的代码中没有任何地方的 Y 值发生变化,除非它被初始化,并且 getY() 总是比我分配给它的值高 32。X值很好。我在 Android 4.1 中运行它。我唯一能想到的是它是某种后端对齐协议,但我找不到任何关于它的信息。

4

1 回答 1

0

我认为活动与标题栏一起加载,然后标题栏在此后不久被删除,所以问题可能是在标题栏仍然存在的时候初始化 Y 值。也许尝试通过 onDraw 函数第一次初始化 Y 值,如下所示:

public void Draw(Canvas canvas) {
    if (!yHasBeenInitialized) {
        initializeY();
        yHasBeenInitialized = true; 
    }
...
}
于 2013-06-16T16:56:55.267 回答