Ошибка получения размера окна на 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);