Итак, я получил смартфон HTC с дисплеем 800x480. Я всегда думал, что это устройство HDPI. И я был обеспечен с использованием следующего кода:плотность экрана и использование ресурсов (ldpi/mdpi/hdpi/xhdpi)
Display display = activity.getWindowManager().getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);
displayDensity = displayMetrics.densityDpi;
Сообщается, что мое устройство 240dpi. Но экспериментально я обнаружил, что андроид угрожает моему устройству только как MDPI. Я уверен, что это. Я тестировал то же самое с другим 800x480 (ZTE), и результат был таким же - он показывает 240 в displayDensity, но андроид угрожает ему как устройство MDPI ... Но почему это так? На android.devepoler они сказали, что 240 dpi - это HDPI. Я совершенно смущен. Почему heck 240 обрабатывается как MDPI?
Как я обнаружил, что андроид лечит мой HTC в качестве MDPI устройства: Короче, что я сделал, чтобы обеспечить - я положил большое изображение на вытяжку-ИПЧР (угадывание AOS собирается использовать его), а меньший по вытяжке -mdpi, а затем запустить приложение, чтобы посмотреть, что он будет использовать. И он всегда использовал изображение из drawable-mdpi вместо drawable-hdpi. Чтобы узнать, как выглядит изображение на моем устройстве, я запустил приложение, ранее помещающее изображения в выпадающую папку проекта.
Однако, как я упоминал выше, я предполагал, что мой 800x480 HTC является HDPI из-за кода, основанного на displayDensity, но не в конфигурации. Конфигурация говорит, что мое устройство Configuration.SCREENLAYOUT_SIZE_NORMAL и похоже на то, что AOS рассматривает мое устройство только как MDPI. Поэтому в сочетании с DisplayDensity 240dpi (который должен быть HDPI вместо MDPI) это действительно расстраивает. Итак, теперь возникает вопрос, почему с плотностью дисплея 240dpi Конфигурация устанавливает устройство в тип MDPI? В чем причина этого? Я думал, что единственным и единственным способом определения типа устройства является его плотность отображения. И если это 240dpi, это должно быть устройство HDPI вместо MDPI.
Как вы определили, что он рассматривается как устройство mdpi? – Shade
«Но экспериментально я обнаружил, что андроиды угрожают моему устройству только как MDPI». - пожалуйста, отредактируйте свой вопрос, чтобы объяснить ** полностью и точно **, как вы протестировали это. Что еще более важно, когда вы проверили значение «Конфигурация» 'плотность' - то, что используется для определения загружаемых ресурсов - что вы узнали? – CommonsWare