If you want the display dimensions in pixels you can use getSize
:
(如果要以像素为单位显示尺寸,可以使用getSize
:)
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
If you're not in an Activity
you can get the default Display
via WINDOW_SERVICE
:
(如果您不在Activity
,则可以通过WINDOW_SERVICE
获取默认的Display
:)
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
If you are in a fragment and want to acomplish this just use Activity.WindowManager (in Xamarin.Android) or getActivity().getWindowManager() (in java).
(如果您在一个片段中并且想要完成此操作,请使用Activity.WindowManager(在Xamarin.Android中)或getActivity()。getWindowManager()(在Java中)。)
Before getSize
was introduced (in API level 13), you could use the getWidth
and getHeight
methods that are now deprecated:
(在引入getSize
之前(在API级别13中),可以使用现已弃用的getWidth
和getHeight
方法:)
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth(); // deprecated
int height = display.getHeight(); // deprecated
For the use case you're describing however, a margin/padding in the layout seems more appropriate.
(但是,对于您正在描述的用例,布局中的边距/填充似乎更合适。)
Another way is: DisplayMetrics
(另一种方法是: 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成员,请像这样初始化一个对象:)
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
We can use widthPixels
to get information for:
(我们可以使用widthPixels
获取以下信息:)
"The absolute width of the display in pixels."
(“显示的绝对宽度,以像素为单位。”)
Example:
(例:)
Log.d("ApplicationTagName", "Display width in px is " + metrics.widthPixels);