2012-10-10 10 views
5

Stworzyłem aplikację na Androida, która działa poprawnie dla nexusa 7. Wewnątrz folderu zasobów utworzyłem dwa foldery, layout, layout-land dla karty Nexusa 7 "Wszystko działało dobrze do daty. Teraz chcę utworzyć inny układ w przypadku Samsung Galaxy S3, dla których utworzyłem wewnętrzne zasoby folderów z layout-large & layout-large-land. Ale tutaj jest problem. Teraz, również w Nexusie 7, układ zdefiniowany w folderze layout-large jest ładowany. czy mogę utworzyć inny układ zakładki Nexusa 7 "& Galaxy S3 mobile? Przeczytałem dokumentację Supporting Multiple Screens. Ale nie mogłem zrozumieć, jak rozmiar ekranu dla Nexus 7 to 1204 x 800 rozmiar & ekranu dla Samsung Galaxy S3 jest 720 X 1280.Jak stworzyć inny układ dla Galaxy S3 i Nexusa 7?

Jak tworzyć różne układy dla różnych urządzeń o różnych rozdzielczościach ekranu & wyświetlacz rozmiarach? Ponadto, w zależności od wielkości urządzenia, chcę zmienić kilka wartości w mojej aplikacji. Jak to zrobić?

+1

Tak, to są główne wady Androida. Zbyt wielu dostawców, którzy robią swoje własne rozmiary. Możesz chcieć rzucić okiem na moje poprzednie podobne pytania dotyczące wielu ekranów na http://stackoverflow.com/questions/11584107/how-to-deal-with-android-xlarge-screen lub http://stackoverflow.com/ questions/11008199/what-layout-is-odpowiednik-for-720x1280-android-devices lub http://stackoverflow.com/questions/10992764/how-android-manages-screen – rxlky

Odpowiedz

10

Według Supporting Multiple Screensenter image description here

Kwalifikatory takie jak small, normal, large i xlarge jest dla Screen Sizes, co oznacza, że ​​Nexus 7 użyje zasobów z kwalifikatorem large, jeśli je dostarczysz. Dlatego zanim utworzysz folder z kwalifikatorem large, Nexus 7 załaduje zasoby z domyślnego folderu układu. Jeśli chodzi o gęstość ekranu, to dla parametru ldpi, mdpi, .

Aby rozwiązać problem, trzeba:

  1. umieścić definicje układ dla Galaxy S3 w układ i układ-sw600dp dla Nexusa 7. Proszę odnieść się do Android Developers Blog: Getting Your App Ready for Jelly Bean and Nexus 7

  2. umieść zasoby (obrazy lub elementy do rysowania) dla Galaxy S3 w drawable-xhdpi i drawable-tvdpi lub drawable-hdpi na Nexusa 7.

Nadzieja to może pomóc, i daj mi znać, jeśli masz jakiekolwiek inne problemy :)

Oto kilka przydatnych nazwy:

What layout is suitable for 720x1280 Android devices?

Screen Width Qualifier

+0

Nawet po umieszczeniu moich definicji layoutu dla s3 w' layoucie', 'layout-large' jest ładowany – Bharath

+0

Następnie spróbuj wypróbować definicje dla s3 w' układzie' i umieść je dla Nexusa w "layout-sw600dp" zgodnie z [Blog deweloperów Androida] (http://android-developers.blogspot.co.uk/2012/07/getting-your-app-ready-for-jelly- bean.html). W międzyczasie zaktualizowałem również moją odpowiedź, dodając ten komentarz. – dumbfingers

+0

Nie, to jest w porządku. Działa to teraz dobrze, gdy zaimplementowałem twój poprzedni komentarz. Właśnie dlatego usunąłem ten komentarz. Mój błąd polegał na tym, że konfiguracja emulatora dla s3 była nieprawidłowa. dlatego. W każdym razie, dzięki za twój wysiłek. +25 – Bharath

0

Trzeba jeden dla Xlarge i Xlarge-land aswell

Albo można to zrobić programowo przez wywołanie:

Display displayparm= activity.getWindowManager().getDefaultDisplay(); 
int width= displayparm.getWidth(); 
int Height= displayparm.getHeight(); 

i wybierając układ z tej informacji

+0

@Andres .. I dint cię tu. do którego należy użyć 'xlarge'. Stworzyłem taki układ. Nawet wtedy 'layout-large' jest ładowany zarówno dla S3 i Nexusa 7 – Bharath

0

możesz utworzyć układ, dodając nowy folder w folderze res jak layoutu Xlarge i layoutu Xlarge dużym iu trzeba zaktualizować android plik manifestu, a także w celu wsparcia dla wyższej rozdzielczości

0

I opracowali aplikację, w której Popieram wiele urządzeń o różnej rozdzielczości i gęstości . z nexusem 7 i galaktyką s3 również jedną z nich. galaxy s3 i nexus7 będą oczywiście pobierane z dużego ekranu, jeśli masz duży folder w projekcie. Ale galaxy s3 należy do kategorii dużych hdpi, a nexus7 do kategorii dużych tvdpi. więc będzie bardzo przydatny, jeśli masz układ-duży-hdpi i layout-large-tvdpi odpowiednio dla s3 i nexus7.

Powiązane problemy