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



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

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int wwidth = displaymetrics.widthPixels;

Display display = getWindowManager().getDefaultDisplay(); 
stageWidth = display.getWidth();
stageHeight = display.getHeigth();

但目前我扩展了fragment,无法使用上面的代码来获得宽度。

尝试以下修改后的代码

DisplayMetrics displaymetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;

Display display = getActivity().getWindowManager().getDefaultDisplay(); 
int stageWidth = display.getWidth();
int stageHeight = display.getHeight();

基本上,您只需要将getActivity()(获取上下文)放在getWindowManager()函数之前。

这将在不需要上下文或视图的情况下为您提供所需内容:

import android.content.res.Resources;
int width = Resources.getSystem().getDisplayMetrics().widthPixels;
int height = Resources.getSystem().getDisplayMetrics().heightPixels;

此代码也适用于Fragments:

int width = getResources().getConfiguration().screenWidthDp;
int height = getResources().getConfiguration().screenHeightDp;

用于比较方向:

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){...}

最新更新