Вы рассчитываете физический размер экрана на Sony Ericsson X10?(выходит в 1,5 раза больше) - PullRequest
1 голос
/ 31 января 2011

Я работаю над поддержкой нескольких размеров экрана в своем приложении для Android, и мне нужно знать физический размер экрана устройства.

На Sony Ericsson X10 я запрашиваю физическое разрешение экрана и плотностьи пытается вычислить размер экрана (разрешение / плотность = размер), но результат примерно в 1,5 раза больше фактического размера!

Вот код:

    DisplayMetrics metrics = c.getResources().getDisplayMetrics();
    mPhysicalScreenWidth  = metrics.widthPixels  / metrics.xdpi;
    mPhysicalScreenHeight = metrics.heightPixels / metrics.ydpi;
    Log.d(TAG, "DisplayMetrics: widthPixels=" + metrics.widthPixels + " xdpi=" + metrics.xdpi +
            " heightPixels=" + metrics.heightPixels + " ydpi=" + metrics.ydpi);
    Log.d(TAG, "Physical screen width=" + mPhysicalScreenWidth + "\", height=" + mPhysicalScreenHeight + "\"");

Вывод в журнал:

DisplayMetrics: widthPixels=480 xdpi=160.41878 heightPixels=854 ydpi=159.49677
Physical screen width=2.9921684", height=5.3543406"

Этот фактический размер составляет всего 2 "(широкий) x 3,5" (высокий)!?

Я что-то не так делаю?

Я использую Android1.6 SDK и я установил всеатрибуты в манифесте для истины.

Ответы [ 2 ]

2 голосов
/ 31 января 2011

Единственное объяснение, которое я могу придумать, состоит в том, что значения dpi для устройства являются неправильными (звучит как ложная реклама для меня Редактировать: ложная реклама, чтобы они выглядели хуже?).Размер экрана составляет 4,0 дюйма с разрешением 160 точек на дюйм.У вас правильные значения пикселей, что означает, что ваши размеры в дюймах рассчитаны правильно.Все значения, которые я нашел в Интернете ( wikipedia , gsmarena ), говорят об одном и том же.

Но размер экрана на самом деле составляет 4,0 дюйма в поперечнике ...

sqrt (5,35 ^ 2 + 3,0 ^ 2) = 6,14 дюйма в поперечнике, намного больше, чем фактическое значение.

Похоже, значения dpi должны быть неправильными.Они должны быть немного больше.После подключения пары значений фактическое значение dpi должно составлять около 240. Я не уверен, почему значения будут перечислены неправильно везде ...

Редактировать: После более подробного изучения,У xperia x10, как сообщается, dpi 245 для x и y.

1 голос
/ 28 марта 2014

Я знаю, что это старый вопрос, но ошибка все еще есть. При использовании показателей отображения на (некоторых) устройствах Sony необходимо выполнить следующие действия:

metrics.setToDefaults();
...