Я использую этот код, чтобы получить мое разрешение экрана:Android размер неправильно экран
//View v
Context ctx = v.getContext();
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Но я получаю неправильный размер экрана:
06-03 05:25:47.861: I/Screen Size(5267): 1024x552
Мой планшет имеет экран 7" с разрешением 1024x600 Я думаю, что недостающие 48 пикселей - это те, которые используются системной панелью, но даже скрывают ее. Я получаю этот размер экрана.
Поскольку я нахожусь на android 4.1.1 Я не могу использовать метод getRealSize()
, добавленный в API17.Как я могу получить правильный размер экрана?
Обновление: Плотность моей панели не отличается от 1.0, поэтому это не дубликат вопроса. Размер должен быть правильным.
Обновление2: Работает следующий код (только для API от 13 до 16). возвращает 600x1024 так просто сделать проверку на ориентацию экрана, чтобы получить надлежащее ширина/высота
Method mGetRawW = Display.class.getMethod("getRawWidth");
Method mGetRawH = Display.class.getMethod("getRawHeight");
int nW = (Integer)mGetRawW.invoke(dp);
int nH = (Integer)mGetRawH.invoke(dp);
Я взял его здесь: Android DisplayMetrics returns incorrect screen size in pixels on ICS
Я также пробовал Метрики и по-прежнему получают неправильный размер. – Vektor88
Я добавил еще один вопрос о проблеме – JRowan