2011-01-25 7 views
7

Stiamo cercando di emulare dispositivi con la nuova densità di 320 dpi in Android 2.3 - come Archos 101, e non possiamo sembrare di essere in grado di definire un emulatore con tale densità, anche dopo aver scaricato l'ultimo 2.3 sdk.Emulazione densità di 320 dpi su emulatore Android

Vorrei davvero apprezzare alcune idee su questo :)

Molte grazie!

risposta

3

È sempre possibile definire densità e risoluzione personalizzate per i dispositivi virtuali.

Se si utilizza Eclipse andare a Window - Android SDK and AVD Manager, ci ha colpito il pulsante New, inserire un nome e selezionare la versione SDK, ha colpito l'opzione Resolution verso il basso nella sezione Skin e impostare la risoluzione è necessario. Nella sezione Hardware modifica l'opzione predefinita ABstracted LCD Density al valore desiderato e premi il pulsante Create AVD.

Quando si preme il pulsante Start in AVD Manager, viene visualizzata una finestra popup in cui è possibile selezionare Scale display to real size. Qui devi impostare le dimensioni reali dello schermo dei dispositivi e i dpi del tuo monitor. Puoi colpire il punto interrogativo a destra di quel campo di input e lasciare che la calcolatrice lo calcoli per te in base alla dimensione del tuo monitor.

+0

Grazie per la risposta. Purtroppo, abbiamo già provato a impostare la densità a 320 dpi all'interno del gestore AVD, ma nell'emulatore è in qualche modo impostato su 240 dpi. Penso di aver letto da qualche parte su questo problema e speravo che forse ci fosse una soluzione alternativa o una possibile soluzione per questo, poiché si tratta di un problema abbastanza nuovo. –

+0

Interessante. Non ho ancora letto su questo problema. Potresti cercare di trovare e pubblicare quel link? –

+1

Sono riuscito a trovare un post di questo tipo ieri senza dare molto tempo, e purtroppo ora non riesco a trovarlo. Penso che fosse all'interno degli sviluppatori Android di google gruppi ufficiali. In ogni caso, il mio codice per ottenere la densità è il seguente e restituisce sempre 240 per il nuovo profilo di Archos: DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager(). GetDefaultDisplay(). GetMetrics (displayMetrics); final int density = displayMetrics.densityDpi; –

2

Da quello che ho capito Android classifica le dimensioni e la densità dello schermo, quindi penso che tratti 240 dpi equivalenti a 320 dpi, cioè è ad alta densità. C'è anche un'opzione successiva su cui è più alta densità. Ho trovato queste informazioni nel riferimento per sviluppatori Android vedi http://developer.android.com/guide/topics/fundamentals.html e la sezione verso il basso chiamata Dichiarazione dei requisiti dell'applicazione. Potrei sbagliarmi completamente, ma ho pensato che valesse la pena di urlare.

6

Nel gestore AVD se si sceglie un built-in pelle allora la densità LCD Sottratto viene ignorato e si imposterà la densità come descritto qui:

Emulator Skins (da http://developer.android.com/tools/revisions/platforms.html)

La piattaforma scaricabile comprende i seguenti skin: emulatore

  • QVGA (240x320, bassa densità, piccolo schermo)
  • WQVGA400 (240x400, bassa densità, schermo normale)
  • WQVGA432 (240x432, bassa densità, schermo normale)
  • HVGA (320x480, media densità, schermo normale)
  • WVGA800 (480x800, ad alta densità, schermo normale)
  • WVGA854 (480x854 ad alta densità, schermo normale)
  • WXGA720 (1280x720, extra-alta densità, schermo normale)
  • WSVGA (1024x600, media densità, grande schermo)
  • WXGA800-7in (1280x800, ad alta densità, grande schermo) nuovo
  • WXGA800 (1 280x800, media densità, schermo xlarge)

Se si desidera impostare la densità del proprio LCD astratto, sarà necessario definire manualmente la propria risoluzione facendo clic sul pulsante di opzione Risoluzione.

Ecco alcuni codice è possibile utilizzare per verificare questo:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
int density = metrics.densityDpi; 
    if (density == DisplayMetrics.DENSITY_HIGH) { 
     Toast.makeText(this, "DENSITY_HIGH... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else if (density == DisplayMetrics.DENSITY_MEDIUM) { 
     Toast.makeText(this, "DENSITY_MEDIUM... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else if (density == DisplayMetrics.DENSITY_LOW) { 
     Toast.makeText(this, "DENSITY_LOW... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else { 
     Toast.makeText(this, "Density is neither HIGH, MEDIUM OR LOW. Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
6

che è abbastanza semplice.

Modificare l'attributo hw.lcd.density=320 nel file di configurazione avd: /Users/yourUserName/.android/avd/CustomDevice_API_19.avd/config.ini e riavviare il dispositivo virtuale. Lo sto già testando e funziona per me!

Warnning: assicurarsi di impostare la densità corretta, altrimenti si riceve un errore: qemu: available lcd densities are: 120, 160, 213, 240, 280, 320, 360, 400, 420, 480, 560, 640

BTW mia versione Android SDK Tools è 25.2.5.

+0

ha funzionato perfettamente. Grazie! Avevo fatto i calcoli e impostato le dimensioni dello schermo in pollici per quello che avrebbe dovuto innescare 213 dpi, ma invece era 240. La modifica di 'config.ini' ha risolto il problema e ora il mio emulatore corrisponde esattamente al tablet che sto sviluppando. – gMale

+0

fantastico, funzionante, ora posso simulare il mio dispositivo sull'emulatore, esattamente! – AVEbrahimi