2012-10-10 21 views
5

Ho creato un'applicazione Android che funziona correttamente per nexus 7. Nella cartella delle risorse interne, ho creato due cartelle, layout, layout-land per la scheda Nexus 7 "Tutto funzionava bene fino alla data. Ora voglio creare un layout diverso per Samsung Galaxy S3. Per questo, ho creato una cartella all'interno delle risorse con layout-large & layout-large-land. Ma, ecco il problema Ora, anche per Nexus 7, viene caricato il layout definito nella cartella layout-large. posso creare un layout diverso per la scheda Nexus 7 "& Galaxy S3 mobile? Ho letto la documentazione Supporting Multiple Screens. Ma non riuscivo a capire come le dimensioni dello schermo per Nexus 7 è 1204 x 800 Dimensioni & dello schermo per la galassia S3 è 720 X 1280.Come creare layout diversi per Galaxy S3 e Nexus 7?

Come creare layout differenti per i diversi dispositivi con diverse risoluzioni dello schermo & dimensioni di visualizzazione? Inoltre, in base alle dimensioni del dispositivo, desidero modificare alcuni valori nella mia applicazione. Come si fa?

+1

Sì, questo è lo svantaggio principale di Android. Troppi venditori che producono le proprie dimensioni. Potresti dare un'occhiata alle mie precedenti domande simili su più schermi su http://stackoverflow.com/questions/11584107/how-to-deal-with-android-xlarge-screen o http://stackoverflow.com/ questions/11008199/what-layout-is-suitable-for-720x1280-android-devices o http://stackoverflow.com/questions/10992764/how-android-manages-screen – rxlky

risposta

10

Secondo il Supporting Multiple Screensenter image description here

Qualificazioni come small, normal, large e xlarge è per Screen Sizes, il che significa che Nexus 7 utilizzerà le risorse con il qualificatore large, se fornito. Pertanto, prima di creare la cartella con il qualificatore large, Nexus 7 caricherà le risorse dalla cartella di layout predefinita. Come per ldpi, mdpi, hdpi e xhdpi è per la densità dello schermo.

Per risolvere il problema, è necessario:

  1. mettere le definizioni di layout per la galassia S3 nel layout e il layout-sw600dp per Nexus 7. Si prega di fare riferimento al Android Developers Blog: Getting Your App Ready for Jelly Bean and Nexus 7

  2. inserisci le risorse (immagini o materiale disegnabile) per Galaxy S3 in Drawable-xhdpi e drawable-tvdpi o drawable-hdpi per Nexus 7.

Spero potrebbe aiutare, e per favore fatemi sapere se avete altri problemi :)

Ecco alcuni riferimenti utili:

What layout is suitable for 720x1280 Android devices?

Screen Width Qualifier

+0

Anche dopo aver definito le definizioni di layout per s3 in' layout', 'layout-large' viene caricato – Bharath

+0

Quindi prova a mettere le definizioni per s3 in' layout' e metti quelli per Nexus in 'layout-sw600dp' secondo [Android Developers Blog] (http://android-developers.blogspot.co.uk/2012/07/getting-your-app-ready-for-jelly- bean.html). Nel frattempo ho anche aggiornato la mia risposta per includere questo commento. – dumbfingers

+0

No. questo è ok. Funziona bene ora quando ho implementato il tuo commento precedente. Ecco perché ho cancellato quel commento. Il mio errore è stato, la configurazione dell'emulatore per s3 non era corretta. Ecco perchè. Comunque, grazie per il tuo impegno. +25 – Bharath

0

avete bisogno di uno per xlarge e xlarge-land aswell

Oppure si può fare a livello di codice chiamando:

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

e scegliendo il layout da queste informazioni

+0

@Andres .. Non ti ho portato qui. per il quale dovrei usare 'xlarge'. Ho creato tale layout. Anche in questo caso 'layout-large' viene caricato per S3 e Nexus 7 – Bharath

0

puoi creare il layout aggiungendo una nuova cartella nella cartella res come layout xlarge e layout xlarge-large e u deve aggiornare il file manifesto Android anche per supportare la per una maggiore risoluzione

0

Ho sviluppato un'applicazione in cui i support più dispositivi con risoluzione e densità differente . con nexus 7 e galaxy s3 anche uno tra loro. galaxy s3 e nexus7 prenderanno ovviamente dalla cartella dello schermo grande se hai una cartella layout-large nel tuo progetto. Ma la galassia s3 rientra nella grande categoria hdpi e nexus7 rientra nella categoria large-tvdpi. quindi sarà di grande utilità se disponete di layout-large-hdpi e layout-large-tvdpi rispettivamente per s3 e nexus7.

Problemi correlati