获取片段中的屏幕宽度和高度

pen*_*ang 18 android android-fragments

如果我在我的应用程序中扩展活动,我可以获得宽度和高度:

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int wwidth = displaymetrics.widthPixels;
Run Code Online (Sandbox Code Playgroud)

要么

Display display = getWindowManager().getDefaultDisplay(); 
stageWidth = display.getWidth();
stageHeight = display.getHeigth();
Run Code Online (Sandbox Code Playgroud)

但目前我扩展了fragement,我不能使用上面的代码来获得宽度.

raj*_*ara 52

尝试以下修改后的代码

DisplayMetrics displaymetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
Run Code Online (Sandbox Code Playgroud)

要么

Display display = getActivity().getWindowManager().getDefaultDisplay(); 
stageWidth = display.getWidth();
stageHeight = display.getHeigth();
Run Code Online (Sandbox Code Playgroud)

基本上你只需要getActivity()getWindowManager()函数之前放置(获取上下文).

  • 现在不推荐使用`getWidth()`和`getHeight()`.另外,这是另一种方式:`Point size = new Point(); .getActivity()getWindowManager()getDefaultDisplay()的getSize(大小);` (7认同)

Ale*_*lig 9

这将为您提供所需的内容,而无需上下文或视图:

import android.content.res.Resources;

int width = Resources.getSystem().getDisplayMetrics().widthPixels;

int height = Resources.getSystem().getDisplayMetrics().heightPixels;
Run Code Online (Sandbox Code Playgroud)


dev*_*B78 6

此代码也适用于片段:

int width = getResources().getConfiguration().screenWidthDp;
int height = getResources().getConfiguration().screenHeightDp;
Run Code Online (Sandbox Code Playgroud)

用于比较方向:

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){...}
Run Code Online (Sandbox Code Playgroud)