问题

我创建了一些自定义元素,我想以编程方式将它们放在右上角(从顶部边缘开始 n 像素,从右边缘开始 m .因此,我需要获得屏幕宽度和屏幕高度,然后设置位置:

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

如何在主要活动中取得 screenWidth screenHeight ?



解决方法

如果您想以像素为单位显示尺寸,可以使用 getSize :

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

如果您不在 Activity 中,则可以通过 WINDOW_SERVICE :

获取默认的 Display
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();

在引入 getSize 之前(在API级别13),您可以使用现在已弃用的 getWidth getHeight 方法: p>

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

对于您描述的用例,布局中的边距/填充似乎更合适.

2015年10月22日

另一种方法是: DisplayMetrics

A structure describing general information about a display, such as its size, density, and font scaling. To access the DisplayMetrics members, initialize an object like this:

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

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

"The absolute width of the display in pixels."

示例:

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



相关问题推荐