【问题标题】:How do android screen coordinates work?android屏幕坐标如何工作?
【发布时间】:2012-07-14 01:31:07
【问题描述】:

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

【问题讨论】:

  • 其实你画的其实是对的,只是逆时针旋转了90度而已。

标签: android android-animation coordinate-systems


【解决方案1】:

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

要获取 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 是屏幕最大高度和宽度(以像素为单位),我们在上面给出的代码中检索到了。

【讨论】:

  • 如果我们得到 Viewlayout_width="1" layout_height="1" 是否意味着左上角是 (0,0) 而右下角是 (1, 1)?那不是意味着View 的宽度 = 2 和高度 = 2?矛盾。
  • @AAnkit 您能否确认一下,这对屏幕方向(纵向和横向)都有效,屏幕方向更改是否会影响 (0,0) -> 左上角。 (maxX,0) -> 右上角 (0,maxY) -> 左下角 (maxX,maxY) -> 右下角
  • 非常感谢您提供的图片。它真的救了我的命。
【解决方案2】:

对于 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 的方法 android 中的类。因此,当您的 java 类扩展 View 类时,没有 windowManager 开销。

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

就这么简单。

【讨论】:

    【解决方案3】:

    这张图片希望能消除大家的疑惑,收集自there

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-20
      • 2013-02-24
      • 1970-01-01
      • 2017-03-04
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多