Какая часть Android отвечает за выбор правильного профиля ресурса?
У меня странная проблема.
Прежде чем вы придете к мысли наброситься на меня, я работаю над кастомным желейным бобом. Следовательно "обычные приятные подходы может не сработать здесь, и грязные обходные пути должны быть сделаны.
У меня есть APK, который содержит следующее в активах:
layout
layout-mdpi
layout-land
layout-large-mdpi
layout-large-land-mdpi
layout-large-hdpi
layout-large-xhdpi
И некоторые другие метрики кода вернули это:
D/AppDemo( 2091): measured width: 1920 PE width: 1920 scaleFactor = 1.0
D/AppDemo( 2091): [ANDROID] measured width: 1920 measured height: 1080
D/AppDemo( 2091): [ANDROID] scale for resources: 2.0 xdpi: 320.0 ydpi: 320.0
D/AppDemo( 2091): [ANDROID] screen density: xhdpi
D/AppDemo( 2091): [ANDROID] screen size: large
D/AppDemo( 2091): [ANDROID] using layout: layout-mdpi
Итак, глядя на метрики, почему нетlayout-large-xhdpi
загружается?
Пожалуйста, скажите мне, где я могу найти это. Мне действительно нужно найти способ заставить Макет / Ресурс /AssetManager
загрузить определенный макет.
Я знаю, что самый популярный комментарий по этому вопросу "вам не нужно / почему у вас естьlayout-xhdpi
, у тебя должно бытьdrawable-xhdpi
а также "layout-large
но терпите меня.
Я был бы очень признателен даже за небольшие подсказки о том, где смотреть и что искать. До сих пор,AssetManager
похоже место для начала копать / бревно.
Когда я опускаюlayout-mdpi
, приложение падает на меня, с отсутствующими ресурсами. Ошибка, кажется, в том, что, хотя код возвращаетсяxhdpi
, предполагаетmdpi
где-нибудь еще. Мне нужно найти это и исправить, чтобы мои приложения выглядели так же хорошо, как и на ICS :)
Я выясняю, какой макет загружается простым способом - все корневые макеты имеютandroid:tag
элемент, и когда яsetContentView(R.layout.main_layout)
Я беру тег на корневой элемент и знаю, какая папка была загружена. Помимо визуальной обратной связи, это в конечном итоге должно соответствовать конфигурации моего устройства.
Заранее спасибо.