2012-07-14 39 views
111

我正在使用Android Animation,并且我发现Android坐标系非常令人困惑,所以我在这里要问一下关于坐标如何在Android中工作的问题。我下面这个图像移动一个视图到另一个,但似乎它不工作:android屏幕坐标如何工作?

image

回答

219

enter image description here

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

要获得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)是右下corner

此处maxX和maxY是屏幕最大高度和宽度(以像素为单位),我们已经在上面给出的代码中检索到了这些值。

+2

不赞成这种方法是从苏氨酸API级别1 ... – AAnkit 2012-11-26 15:22:34

+0

如果我们已经得到了'View'用'layout_width = “1” layout_height =“1”'是否意味着左上角是(0,0),右下角是(1,1)?那不是说'View'的width = 2和height = 2?矛盾。 – riwnodennyk 2014-02-12 20:35:41

+0

@AAnkit你可以请保密,这对两个屏幕方向(人像和风景)都有效,屏幕方向变化会影响(0,0) - >左上角。 (maxX,0) - >右上角 (0,maxY) - >左下角 (maxX,maxY) - >右下角 – 2015-05-11 07:11:57

16

对于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的,美星)是在屏幕的右下角。

的 '的getWidth()' 的屏幕尺寸,因为API 13