28

アプリでアクティビティを拡張すると、幅と高さを取得できます。

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

しかし、現在、フラグメントを拡張しており、上記のコードを使用して幅を取得することはできません。

4

3 に答える 3

71

以下の変更されたコードを試してください

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()ます。

于 2012-07-24T11:20:50.447 に答える
10

これにより、コンテキストやビューを必要とせずに、必要なものが得られます。

import android.content.res.Resources;

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

int height = Resources.getSystem().getDisplayMetrics().heightPixels;
于 2018-12-17T09:43:34.287 に答える
4

このコードはフラグメントでも機能します。

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

向きを比較する場合:

if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){...}
于 2018-08-18T21:32:24.167 に答える