获取屏幕尺寸(像素)

时间 2009-06-19
阅读 1082091
点赞 1714
收藏 497
连接niko-gamulin

我创建了一些自定义元素,并希望以编程方式将它们放置在右上角(n上边缘的像素和m像素)。因此,我需要得到屏幕宽度和屏幕高度,然后设置位置:

int px = screenWidth - m;
int py = screenHeight - n;

我如何得到screenWidthscreenHeight在主要活动中?

✅ 被采纳的答案

如果需要以像素为单位的显示尺寸,可以使用getSize

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

如果你不在Activity你可以得到默认值Display通过WINDOW_SERVICE

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();

如果你在一个片段中,想要实现这一点,只需使用Accviv.WistoMeCube(在XAMARIN。Android)或GETActuvio().GETWOMWOMMARTER()(在Java中)。

以前getSize在API级别13中,您可以使用getWidthgetHeight现在已弃用的方法:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();  // deprecated
int height = display.getHeight();  // deprecated

但是,对于您描述的用例,布局中的边距/填充看起来更合适。

另一种方法是:DisplayMetrics

一种描述显示器的一般信息的结构,如其大小、密度和字体比例。要访问DisplayMetrics成员,请初始化如下对象:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

我们可以使用widthPixels获取以下信息:

“显示的绝对宽度(像素)。”

例子:

Log.d("ApplicationTagName", "Display width in px is " + metrics.widthPixels);
👍 3371