Mam dziwny problem.Która część Androida jest odpowiedzialna za wybór prawidłowego profilu zasobów?
Zanim wpadniesz na pomysł, by rzucić się na mnie, pracuję nad niestandardową galaretką. W związku z tym "zwykłe ładne podejście" może nie działać tutaj i trzeba wykonać brudne obejścia.
Mam APK, który zawiera następujące aktywa:
layout
layout-mdpi
layout-land
layout-large-mdpi
layout-large-land-mdpi
layout-large-hdpi
layout-large-xhdpi
i niektóre inne kodu metryki wrócił to:
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
Więc patrząc na metryki, dlaczego nie jest istotą layout-large-xhdpi
załadowany?
Proszę, powiedz mi, gdzie mogę to sprawdzić. Naprawdę muszę znaleźć sposób zmuszenia układu/zasobu/AssetManager
do załadowania określonego układu.
Zdaję sobie sprawę, że najpopularniejszym komentarzem w tym temacie jest "nie potrzebujesz/dlaczego masz layout-xhdpi
, powinieneś mieć drawable-xhdpi
i layout-large
", ale musisz ze mną.
Chciałbym bardzo docenić nawet małe wskazówki, gdzie patrzeć i na co zwracać uwagę. Do tej pory, AssetManager
wydaje się być miejscem do rozpoczęcia kopania/rejestrowania.
Kiedy pomijam layout-mdpi
, aplikacja zawiesza się na mnie, z brakującymi zasobami. Błąd wydaje się, że mimo że kod zwraca xhdpi
, zakłada on, że gdzie indziej jest mdpi
. Muszę to znaleźć i naprawić, aby moje aplikacje wyglądały tak dobrze, jak na ICS :)
Rozumiem, który układ jest ładowany w prosty sposób - wszystkie układy główne mają element android:tag
, a kiedy setContentView(R.layout.main_layout)
Chwytam znacznik na głównym elemencie i wiem, który folder został załadowany. Oprócz wizualnej informacji zwrotnej, będzie to musiało ostatecznie pasować do konfiguracji mojego urządzenia.
Z góry dziękuję.
Chociaż nie łowisz za * nie potrzebujesz * odpowiedzi, uważam, że przybliżone wytłumaczenie twojego ostatecznego celu może pomóc nam wymyślić sposoby uzyskania tego, czego potrzebujesz, bez przechodzenia trudnej trasy. – Phil
@Phil: Ok, problemem jest to, że z powodu rozbieżności gdzieś, wszystkie aplikacje pokazują tylko lewy górny kwartał na całym ekranie. Zamiast być mniejszym (jeśli skalowanie działało poprawnie) są znacznie większe. W każdym razie zostałem przeniesiony z tego, więc jest koniec tego. – Shark