以像素为单位获取屏幕尺寸

以像素为单位获取屏幕尺寸

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

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

如何获得screenWidthscreenHeight在主要活动?


慕妹3242003
浏览 732回答 4
4回答

陪伴而非守候

一种方法是:Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth();int height = display.getHeight();它已弃用,您应该尝试使用以下代码。前两行代码为您提供了DisplayMetrics对象。该对象包含像heightPixels,等字段widthPixels。DisplayMetrics metrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metrics);int height = metrics.heightPixels;int width = metrics.widthPixels;

皈依舞

它可能无法回答你的问题,但知道(当我提出这个问题时我自己正在寻找它)可能是有用的,如果你需要一个View的维度,但你的代码在布局尚未布局时正在执行(例如在onCreate())你可以设置一个ViewTreeObserver.OnGlobalLayoutListenerwith View.getViewTreeObserver().addOnGlobalLayoutListener()并放置需要视图维度的相关代码。布局布局后将调用侦听器的回调。

繁星coding

如果你想支持precomb,你需要在API 13之前提供向后兼容性。例如:int measuredWidth = 0;int measuredHeight = 0;WindowManager w = getWindowManager();if (Build.VERSION.SDK_INT >=  Build.VERSION_CODES.HONEYCOMB_MR2) {     Point size = new Point();     w.getDefaultDisplay().getSize(size);     measuredWidth = size.x;     measuredHeight = size.y;} else {     Display d = w.getDefaultDisplay();     measuredWidth = d.getWidth();     measuredHeight = d.getHeight();}当然,已弃用的方法最终会从最新的SDK中取出,但我们仍然依赖大多数拥有Android 2.1,2.2和2.3的用户,这就是我们留下的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java