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

时间:2012-07-24 11:15:10

标签: android android-fragments

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

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();

但是目前我扩展了片段,我无法使用上面的代码来获取宽度。

3 个答案:

答案 0 :(得分:50)

尝试以下修改后的代码

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

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

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

答案 1 :(得分:1)

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

import android.content.res.Resources;

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

int height = Resources.getSystem().getDisplayMetrics().heightPixels;

答案 2 :(得分:0)

此代码也适用于片段:

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

用于比较方向:

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