如何将图像放在屏幕中央

时间:2017-04-22 16:22:12

标签: java android

我正在尝试将图像(playBtn)放在屏幕的中央,使用下面的代码,我的结果更靠近右上角。请看下面的代码

 public class FlappyBird extends ApplicationAdapter {

        Texture img;
        public static final int WIDTH = 1440;
        public static final int HEIGHT = 2560;



    }

上面,我设置了我的WIDTH&我认为高度不是正确的方法。尽管如此,这给了我所需的价值,但我似乎无法使用playbth并将其置于中心

   public class MenuState extends State {
        private Texture background;
        private Texture playBtn;


        public MenuState(GameStateManager gsm) {
            super(gsm);
            background = new Texture("bg.png");
            playBtn = new Texture("playbtn.png");
        }



        @Override
        public void render(SpriteBatch sb) {

            sb.begin();
            sb.draw(background, 0, 0, FlappyBird.WIDTH, FlappyBird.HEIGHT);
            //sb.draw(playBtn, (FlappyBird.WIDTH / 2) - (playBtn.getWidth() / 2), FlappyBird.HEIGHT / 2);
            sb.draw(playBtn,(FlappyBird.WIDTH/2)-(playBtn.getWidth()),FlappyBird.HEIGHT / 2);
            sb.end();


        }
    }

1 个答案:

答案 0 :(得分:0)

实际上所有物体都是从它们的左角之一定位的。因此,虽然图像本身看起来是未对齐的,但它实际上是图像的左上角或左下角,这取决于编程语言如何与Y轴一起工作。

我将几张快速图表拼凑在一起,以获得更好的视觉表现。 对于此示例,Y轴向下增加,因此点(0,0)将是窗口的左上角而不是左下角。

假设您有一个200像素宽,100像素高的窗口,并且您有一个20像素×20像素的对象,您想要放置在窗口的正中心。一般的假设是将对象放置在窗口宽度和高度的一半处,但这样做会得到类似于此的结果:

但是,这是一个非常简单的问题。只需将对象从窗口宽度的一半定位,减去X轴对象宽度的一半,窗口高度的一半减去Y轴对象高度的一半:

如前所述,一些编程语言在Y轴向上增加和向下减小的地方有所不同。如果是这种情况,那么你必须考虑对象的左下角而不是左上角,但我相信方程应该是相同的。