2010-11-15 25 views
58

Vorrei creare diversi layout per tablet e telefoni Android. Dove dovrei mettere le risorse del layout per fare questa differenziazione?Layout per tablet in Android

+2

I tablet sono i dispositivi mobili in modo non v'è alcuna differenza tra i due. – Rene

risposta

121

So che questa è una vecchia questione, ma per il gusto di farlo ... Secondo documentation, è necessario creare le cartelle di attività mutiple come questo

res/layout/main_activity.xml   # For handsets (smaller than 600dp available width) 
res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger) 
res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger) 
+0

Wow grazie. Quale cartella drawable usa? – Si8

+0

Quali cartelle di layout devo creare per i dispositivi Nexus 9 e Nexus 10? –

+0

Provare a spostare il contenuto del Nexus 10 in una cartella per sw800dp. Il Nexus 9 continuerà a prendere spunto dalla cartella sw768dp –

22

Con i layout, io credo che si può distinguere solo corrente dal seguente:

res/layout/my_layout.xml   // layout for normal screen size 
res/layout-small/my_layout.xml  // layout for small screen size 
res/layout-large/my_layout.xml  // layout for large screen size 
res/layout-large-land/my_layout.xml // layout for large screen size in landscape mode 

È possibile trovare maggiori informazioni su ciò che è possibile aggiungere alla struttura di cartelle di distinguere tra diverse impostazioni here.

Il problema più grande è che l'SDK Android non ha davvero inserito ufficialmente le compresse. Spero che sarà risolto nella prossima versione di Android. Altrimenti, devi solo assicurarti di utilizzare i layout di ridimensionamento che funzioneranno per qualsiasi dimensione dello schermo.

+0

Penso che il problema non riguardi l'SDK. Ad esempio il telefono ha dimensioni dello schermo 480x800 hdpi è sufficiente per il layout della tavoletta. Se la tua app funziona meglio con il layout della tavoletta, in tal caso, gli utenti non hanno bisogno di avere un tablet e continuano a beneficiare. Quindi non c'è bisogno di distinguere tablet/telefono. Il link che hai indicato lo risolve perfettamente. Grazie. –

+0

questo è supportato sotto Android 3.2 –

34

Se si utilizza il concetto Frammento nel codice (significa la layout multi-finestra) allora è meglio usare wdp anziché swdp

res/layout-w600dp/main_activity.xml # For 7” tablets (600dp wide and bigger) 
res/layout-w720dp/main_activity.xml # For 10” tablets (720dp wide and bigger) 
res/layout-w600dp-land/main_activity.xml # For 7” tablets in landscape (600dp wide and     bigger) 
res/layout-w720dp-land/main_activity.xml # For 10” tablets in landscape (720dp wide and bigger) 

Fare riferimento alla tabella per la comprensione wdp

Table 2. New configuration qualifers for screen size (introduced in Android 3.2). Nel seguente link http://developer.android.com/guide/practices/screens_support.html

0

This source anche fornendo come chiamare tutte le risorse basate su configurazioni dei dispositivi, quali: lingua, larghezza/altezza dello schermo, direzione di layout, orientamento dello schermo ... ecc.

Devi fare attenzione a creare una risorsa predefinita come la fonte menzionata, come chiamare l'alta qualità delle icone per i tablet.

0

Secondo la documentazione, è necessario creare le cartelle di attività mutiple come this..full lista ...... res/layout/main_activity.xml // For handsets (smaller than 600dp available width) res/layout/main_activity.xml // For handsets (smaller than 600dp available width) res/layout-sw600dp/main_activity.xml // For 7” tablets (600dp wide and bigger) res/layout-sw720dp/main_activity.xml // For 10” tablets (720dp wide and bigger) res/layout-sw600dp-land/main_activity.xml // For 7” tablets in landscape (600dp wide and bigger) res/layout-sw720dp-land/main_activity.xml // For 10” tablets in landscape (720dp wide and bigger)

Problemi correlati