2016-10-13 7 views
1

У меня есть два устройства Android, которые имеют одинаковое разрешение и PPI. Но когда я запускаю приложение для одного устройства, которое является вкладкой Samsung Tab 4, ресурсы вызывается из обычной папки макета. Но для другого устройства, которое является Samsung J Max, оно находится из папки layout-600. Почему это ведет себя по-разному для этих устройств? Любые предложения будут ценны.Ресурсы Android, вызванные из разных папок макета

ответ

0

Квалификатор 600 в layout-600 имеет размер экрана в dp и не обязательно с разрешением DPI или разрешением экрана в пикселях. Также учитываются другие факторы, такие как соотношение сторон и диагональный размер экрана.

Вы можете определить размеры экрана в dp программно с помощью инструкции в этом post:

Configuration configuration = yourActivity.getResources().getConfiguration(); 
int screenWidthDp = configuration.screenWidthDp; //The current width of the available screen space, in dp units, corresponding to screen width resource qualifier. 

Я держал пари, что значение screenWidthDp отличается между этими устройствами.

0

Это зависит от плотности пикселей (СП) для Android устройств, которые очень от устройства к устройству и в соответствии с этим Android устройства обнаружения автоматически, из которых папки раскладка будет показывать интерфейс, здесь мало информации, как это работает:

Поскольку вы разрабатываете свой пользовательский интерфейс для разных размеров экрана, вы обнаружите, что для каждого дизайна требуется минимальное пространство. . Таким образом, каждый обобщенный размер экрана имеет соответствующее минимальное разрешение, определенное системой . Эти минимальные размеры находятся в единицах «dp» - те же единицы , которые вы должны использовать при определении своих макетов, что позволяет системе избежать беспокойства относительно изменений плотности экрана.

экраны XLarge, по крайней мере 960dp х 720dp

большие экраны, по меньшей мере 640dp х 480dp

нормальные экраны, по меньшей мере 470dp х 320dp

маленькие экраны , по крайней мере 426dp х 320dp

набор из шести обобщенных плотностей:

ldpi (низкий) ~ 120dpi

MDPI (среда) ~ 160dpi

ИПЧР (высокий) ~ 240dpi

xhdpi (сверхвысокого) ~ 320dpi

xxhdpi (экстра- сверхвысокий) ~ 480dpi

xxxhdpi (экстра-экстра-экстра-высокий) ~ 640dpi

Для получения дополнительной информации, пожалуйста, прочитайте Google документ: https://developer.android.com/guide/practices/screens_support.html

1

Вы должны проверить This Google Article.Он указал, что:

В этом контексте у Samsung еще один маленький сюрприз: если вы выполняете арифметику, ее экран имеет 170 DPI, что далеко от самого плотного среди Android-устройств. Тем не менее, он объявляет себя «hdpi» (и имеет «большой» размер экрана). Причина проста: это выглядит лучше.

Это означает, что ваш Tab ppi - 170 (не 220ppi). В результате: 800 ширина, 170 ppi -> 800/(170/160)> 600. Вот почему ваш ресурс Samsung Tab 4 находится из папки «layout-sw600dp»

 Смежные вопросы

  • Нет связанных вопросов^_^