【发布时间】:2023-03-24 14:46:01
【问题描述】:
我是安卓新手。我想做ludo游戏。我设置了与这个游戏相关的所有东西。但我想将 TOKEN 从一个地方移动到另一个不同的屏幕,例如(Nexus 6、三星 Note 5、Moto G3 等)。但问题是每个屏幕尺寸(宽度 x 高度)都不同。这就是为什么我没有在屏幕上设置正确的 x 和 y 位置。我参考了屏幕高度和宽度来获取屏幕上的下一个位置(x 和 y)以在屏幕上移动 TOKEN。我正在为 Ludo Dashboard 拍摄静态图像。这就是为什么我不知道如何移动。
例如: 我的屏幕如下,
-
从原点到原点: 在这种情况下,每个屏幕的翻译都发生了变化。因为我正在参考屏幕高度和宽度进行移动。 对于该代码如下,
DisplayMetrics displaymetrics = getResources().getDisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); this.constant.Height = displaymetrics.heightPixels; this.constant.Width = displaymetrics.widthPixels; private float getheight(float val) { return (this.constant.Height * val) / 800; } private float getwidth(float val) { return (this.constant.Width * val) / 480; } ObjectAnimator animTranslateY = ObjectAnimator.ofFloat(img, "translationY", blue_1.getY() + getheight(67)); animTranslateY.setDuration(GameConstants.DURATION); ObjectAnimator animTranslateX = ObjectAnimator.ofFloat(img, "translationX", blue_1.getX() + getwidth(128)); animTranslateX.setDuration(GameConstants.DURATION); AnimatorSet anim = new AnimatorSet(); anim.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animator) { } @Override public void onAnimationEnd(Animator animator) { } @Override public void onAnimationCancel(Animator animator) { } @Override public void onAnimationRepeat(Animator animator) { } }); anim.play(animTranslateX); anim.play(animTranslateY); anim.start(); 从家到公共路线: 在这种情况下,它的工作正常。 bt 对于不同的屏幕,它的移动不同。
所以,我的问题是,我该如何移动以及将图像从一个位置移动到另一个位置时应该参考什么。我为此花费了太多时间。请帮帮我。
【问题讨论】:
标签: android resolution screen-size