Ошибка получения размера окна на Android: "Метод getWindowManager undefined"

Мне нужно получить высоту окна и вес.
У меня это в моем коде:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
width1 = metrics.widthPixels; 
height1 = metrics.heightPixels;

но у меня есть ошибка:

Метод getWindowManager undefined

что я должен импортировать для этого? или я могу получить размеры стяжки по-разному? я импортировал

import android.view.Display;
import android.view.Window;
import android.view.WindowManager;
import android.content.Context;
import android.util.DisplayMetrics;

Ответ 1

Где вы используете этот код?

Ошибка getWindowManager говорит, что не может найти метод, потому что корень вашего класса не имеет его.

Попробуйте следующее:

((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(metrics);

или

((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE))
  .getDefaultDisplay().getMetrics(metrics);

Если это не сработает, вставьте свою активность

Ответ 2

Используйте это:

 display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
 display.getWidth(); // to get width of the screen
 display.getHeight(); // to get height of the Screen

UPDATE

Пожалуйста, просмотрите сайт Android-разработчика. Для получения дополнительной информации.

Вы можете использовать фрагмент кода ниже, чтобы получить ширину устройства по высоте.

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

Ответ 3

Используйте Context для действия с помощью getActivityContext()

DisplayMetrics metrics = new DisplayMetrics();
getActivityContext().getWindowManager().getDefaultDisplay().getMetrics(metrics);
width1 = metrics.widthPixels; 
height1 = metrics.heightPixels;

Ответ 4

Вы можете использовать это, например, если вы используете его внутри фрагмента:

getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);

Ответ 5

Пожалуйста, проверьте, вы вызываете метод выше в классе активности или вне его.

Для обоев, этот метод не поможет вам получить высоту или ширину окна, вам нужно получить ширину и высоту доступного окна с помощью поверхности.

Ответ 6

это работает для меня

import android.app.Activity;

((Activity)getContext()).getWindowManager().getDefaultDisplay().getMetrics(metrics);

mediaProjectionManager = (MediaProjectionManager)((Activity) getContext()).getSystemService(Context.MEDIA_PROJECTION_SERVICE);