166

我正在使用 Android Animation,我发现 Android 坐标系统非常混乱,所以我在这里问这个关于坐标如何在 Android 中工作的问题。我正在关注此图像以将一个视图移动到另一个视图,但它似乎不起作用:

图片

4

3 回答 3

320

在此处输入图像描述

此图像呈现两个方向(横向/纵向)

要获得 MaxX 和 MaxY,请继续阅读。

对于 Android 设备屏幕坐标,以下概念将起作用。

Display mdisp = getWindowManager().getDefaultDisplay();
Point mdispSize = new Point();
mdisp.getSize(mdispSize);
int maxX = mdispSize.x; 
int maxY = mdispSize.y;

编辑:- ** **适用于支持 android api 级别早于 13 的设备。可以使用以下代码。

    Display mdisp = getWindowManager().getDefaultDisplay();
    int maxX= mdisp.getWidth();
    int maxY= mdisp.getHeight();

(x,y) :-

1) (0,0)是左上角。

2) (maxX,0)是右上角

3) (0,maxY)是左下角

4) (maxX,maxY)是右下角

这里 maxX 和 maxY 是以像素为单位的屏幕最大高度和宽度,我们在上面给定的代码中检索到了它们。

于 2012-07-14T11:34:38.090 回答
20

对于 Android API 级别 13,您需要使用:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int maxX = size.x; 
int maxY = size.y;

然后 (0,0) 是左上角, (maxX,maxY) 是屏幕的右下角。

自 API 13 起,屏幕大小的“getWidth()”已被弃用

此外, getwidth()getHeight()android.view.View 类中的方法。所以当你的 java 类扩展 View 类时,没有 windowManager 开销。

          int maxX=getwidht();
          int maxY=getHeight();

就如此容易。

于 2013-09-26T04:01:55.607 回答
7

这张照片是从那里收集的,希望能消除大家的困惑。

安卓屏幕坐标

于 2020-04-01T14:02:49.893 回答