2013-01-01 11 views
5

Niedawno opracowuję aplikację dla Galaxy 10,1, 7 cali z 1024 x 600, 480 x 800, Uwaga z 800 wysokością abd S3 z 720 wysokością. wszystkie działają doskonale w tej rozdzielczości. Ale kiedy mówimy o uwadze 2 i galaxy 7 plus i innych, mamy kilka problemów. Co do tego, że układy nie są prawidłowo wyświetlane na tych urządzeniach. W tym momencie napotykając na problem z układami, używam folderu layouts dla nut jako layouts-normal-xhdpi-1280x800 i dla układów S3-normal-xhdpi-1280x720 i umieszczam wszystkie układy w jednym folderze, co sprawia, że ​​jeden apk obsługuje wszystkie te układy.Układy różnych modeli telefonów komórkowych

Ale kiedy klienci pobierają plik APK, problem polega na tym, że notatka Galaxy wybierała układ-normalny-xhpi-1280x720 i była w porządku, ale S3 i Galaxy Note 2 mają różną gęstość.

powodu tego problemu nie mogę dowiedzieć się, w jaki sposób zadeklarować folderu układ dla S3 i Note 2. Czy jest jakiś sposób, że mogę używać tylko cztery domyślne foldery

Układ Xlarge

Układ Xhdpi z normalnego

Układ MDPI

Układ hdpi z normalnym

i wspiera se wszystkie układy dla wszystkich ekranów takich jak S3, uwaga 1, uwaga 2, 7 cali plus i inne. Kiedy staram się uruchomić mój projekt, zawsze myślałem o wielkich słynnych grach takich jak "Temple Run", który działa na wszystkich telefonach i kartach.

Making grono układów folderu uczynić mojej aplikacji ciężki jak przecina granicę 80MB i rynek Google akceptuje tylko mniej niż aplikacje 50MB.

Grammatically jest sposób, że używamy tylko jeden folder układu i obsługuje ten układ na wszystkich ekranach. Czytam liczbę artykułów i portal dla programistów dla Androida, ale mnie nie zadowalają. Wszyscy mówili, że musisz tworzyć różne foldery układów dla różnych ekranów, a nawet na stackoverflow widziałem tę samą sytuację dla oszczędzania czasu w pierwszych projektach. Używam tych Techniki, ale moja praca rośnie obecnie z dnia na dzień i chcę, aby zacząć od tych technik, które sprawiają, że moja aplikacja nie jest ciężka z powodu tych pęczków układów plus nie marnuj czasu na tworzenie wielu układów dla numerów aplikacji.

Ilość pomaga zostaną docenione i chcę odpowiedzi i sugestie, ponieważ te problemy napotykają liczby programistów, które są nowe i innych również.

+0

+1 za świetne pytanie. –

Odpowiedz

2

Mam również do czynienia z takim problemem w mojej aplikacji. Ale znalazłem dobre rozwiązanie. Mam tylko jeden układ dla tablet, a nazwa katalogu to layout-sw600dp. Teraz, gdy pojawiły się problemy z wysokością i wysokością, utworzyłem kilka różnych katalogów values, w których umieszczam dimensions i font size oraz inne kody pośredniczące. Więc nie będzie wartości constant w layout ekranu tabletu.

androd:layout_width:"60dp" // i drop this scenario 

androd:layout_width:"@dimen/tab_width" // i used this scenario 

oraz imię i nazwisko values katalog będzie jak

values-xlarge 
values-large 

Wszystkie wartości zostaną pobrane z katalogu wartości. Nie utworzy on innego układu, ale jeden układ może być użyty wiele razy.

Edit:

Po to słowa Developer.android miejscu. Przykłady konfiguracji

aby pomóc kierować niektóre projekty dla różnych typów urządzeń, oto kilka liczb dla typowych szerokości ekranu:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc). 
480dp: a tweener tablet like the Streak (480x800 mdpi). 
600dp: a 7” tablet (600x1024 mdpi). 
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc). 

Korzystanie kwalifikatorów rozmiar z tabeli 2, aplikacja może przełączać się między różne zasoby układu dla telefonów komórkowych i tabletów z dowolną liczbą dla szerokości i/lub wysokości. Na przykład, jeśli 600dp to najmniejsza dostępna szerokość obsługiwana przez układ tabletek, można podać te dwa zestawy układów:

res/layout/main_activity.xml # dla telefonów
res/layout-sw600dp/main_activity.xml # dla tabletek

===

w tym widać, że układ do 1280 * 720 jest pod layout-sw720dp więc zamiast tworzenia layout-normal-xlarge trzeba zastosować tę rzecz, która pozwala zdecydować różnice. Zamiast identyfikować w inny sposób przy użyciu layout-large-mdpi i layout-large-ldpi, czy nie identyfikujesz się po numerze smallest width? Ponieważ android udostępniający katalog drawables dla różnych obrazów, jedyną rzeczą jest jego rozdzielczość. I masz powyższe rozwiązanie.

+1

layout-sw600dp obsługuje powyższe 3. Rozwijam swoją aplikację od wersji 2.2 do wyżej – User42590

+0

nie, to nieprawda. Zajmuję się tworzeniem aplikacji w wersji 2.3. Ale wszystkie interfejsy API tabletu mają powyżej 3. Mogą więc zrozumieć "layout-sw600dp". Jeśli jeszcze nie próbowałeś, spróbuj. Otrzymasz wynik. –

+1

Tak, próbuję tego, ale chcę tylko jeden folder układu i istnieje wiele ekranów, w tym karty i telefony komórkowe, więc muszę zadeklarować liczbę wymiarów dla nich. więc problem będzie również istnieć po tym – User42590

Powiązane problemy