2012-07-28 17 views
6

Opracowałem aplikację, która miała być skierowana zarówno na Galaxy Nexus, jak i Galaxy S3. Oba mają rozdzielczość ekranu 720 x 1280, a w mojej aplikacji używam tylko wartości "dp". Zasoby istnieją w folderach "layout-xhdpi" i "drawable-xhdpi". Układ wygląda doskonale na Nexusie, ale wartości dopełnienia (w dp) są nieznacznie wyłączone na S3. Zakładam, że to z powodu większego rozmiaru ekranu na S3 i różnicy gęstości.Układ Android S3 a układ Galaxy Nexus

Jak utworzyć oddzielny folder dla Nexusa i S3, aby uwzględnić różne rozmiary ekranu?

Odpowiedz

0

Możesz pobrać model urządzenia i ustawić układ.

następująco można dostać wzór

String phoneModel = android.os.Build.MODEL; 
if(phoneModel.equals("ABC")) { 
    // SET Ralated Layout 
} else if(phoneModel.equals("XYZ")) { 
    // SET Ralated Layout 
} 
+2

Na pewno istnieje lepszy sposób na zrobienie tego. Muszę zmienić kod XML, a nie kod Java. – karlstackoverflow

+0

O.K. Ale czy możesz powiedzieć mi powód do obniżenia liczby głosów? –

9

Użyj tego schematu:

Dla samego krajobrazu układ i portret layout-sw360dp

Tylko dla krajobrazu layoutu sw360dp-land

Tylko dla portretu layout-sw360dp-port

Próbuję powiedzieć, że możesz użyć wcześniejszych folderów do tworzenia klas z nazwiskami. Układ do którego są umieszczone są ładowane w Galaxy S3 - WXGA720. Jest to sposób na wyodrębnienie układu dla tego typu urządzenia. Niezbędny system Android w wersji 4.0+.

+0

Mam ten folder nadal nie jest używany – Mikey

5

Używam sw360dp-long, który system będzie używał dla GS3 i używam sw360dp dla Galaxy Nexus.

+0

to nie działa w moim przypadku .. Musiałem użyć sw384dp – whyoz

+1

idealnie działa. Dla galaxy s3 użyj 'sw360dp-long', a dla wszystkich innych urządzeń podobnej kategorii użyj' sw360dp' – astuter

2

Nexus 4: Zastosowanie sw384dp (768x1280)

Samsung S3: użycie sw360dp (720x1280)

Należy zauważyć, że obie należą do wiadra sw360dp, ale niektórzy deweloperzy może trzeba zrobić rzeczy piksel idealny, więc folder 384 może być potrzebny, ale należy go unikać, jeśli można zaprojektować bardziej elastyczny układ przy użyciu LinearLayout i "waga" zamiast jednostek dp kodowania dynamicznego.