2012-07-14 40 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