Ошибка при получении размера окна на Android: «Метод getWindowManager не определен» - PullRequest
13 голосов
/ 12 января 2012

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

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

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

МетодgetWindowManager не определен

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

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

Ответы [ 6 ]

45 голосов
/ 12 января 2012

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

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

Попробуйте это:

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

или

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

Если это не работает, пожалуйста, вставьте свою деятельность

4 голосов
/ 12 января 2012

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

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

ОБНОВЛЕНИЕ

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

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

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

Спасибо @halfer за ваше предложение обновить его.

2 голосов
/ 20 августа 2015

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

DisplayMetrics metrics = new DisplayMetrics();
getActivityContext().getWindowManager().getDefaultDisplay().getMetrics(metrics);
width1 = metrics.widthPixels; 
height1 = metrics.heightPixels;
1 голос
/ 17 июля 2015

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

getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
0 голосов
/ 10 марта 2019

у меня работает

import android.app.Activity;

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

mediaProjectionManager = (MediaProjectionManager)((Activity) getContext()).getSystemService(Context.MEDIA_PROJECTION_SERVICE);
0 голосов
/ 12 января 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...