android屏幕坐标如何工作?


Answers:


294

在此处输入图片说明

此图同时显示了两个方向(横向/纵向)

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

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

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

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

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


如果我们有了Viewwith layout_width="1" layout_height="1",是否意味着左上角是(0,0),右下角是(1,1)?那不是意味着View宽度= 2高度= 2吗?矛盾。
riwnodennyk 2014年

@AAnkit可以约束一下,这对于两个屏幕方向(纵向和横向)均有效,屏幕方向更改是否会影响(0,0)->左上角。(maxX,0)->右上角(0,maxY)->左下角(maxX,maxY)->右下角
Qadir Hussain 2015年

非常感谢您的图片。真的救了我一命
Sharl Sherif

19

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

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

就如此容易。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.