2012-02-14 17 views
9

Sto creando un widget Android 1x1. Ho progettato immagini per ogni densità schermo come segue:1x1 Widget Android mostra come widget 2x2 sullo schermo WXGA720

ldpi (120 DPI) = 72 * (120/160) == 54 x 54 pixels 
mdpi (160 DPI) = 72 * (160/160) == 72 x 72 pixels 
hdpi (240 DPI) = 72 * (240/160) == 108 x 108 pixels 
xhdpi (320 DPI) = 72 * (320/160) == 144 x 144 pixels 

mio widget di specifica:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:minWidth="72dip" 
    android:minHeight="72dip" 
    android:updatePeriodMillis="1000" 
    android:initialLayout="@layout/widget"> 
</appwidget-provider> 

Nelle schermate WVGA800 (hdpi), il widget è 1x1. Su schermi WXGA800 (mdpi), il widget è 1x1. Nelle schermate WXGA720 (xhdpi), il widget è 2x2.

Qualcuno può indicarmi la direzione di ciò che è sbagliato qui?

+1

Giusto per confermare, stai dicendo che il widget dell'app si conclude con 288x288 pixel? BTW, 'updatePeriodMillis' di' 1000' sarà inefficace, poiché il tempo minimo è 30 minuti. – CommonsWare

+0

Sì, non sto usando l'updatePeriodMillis in realtà. È solo un residuo che verrà rimosso. Il mio widget viene visualizzato come un widget 2x2, ma l'immagine è 144x144. Quindi, il widget 2x2 ha un'immagine 1x1 che appare in alto a sinistra. Le altre 3 "celle" sono vuote, ma non possono essere occupate. La schermata di selezione del widget (Android 4.0.3) lo mostra come un widget 2x2. – vulcanfk

risposta

12

Prima di Android 4.0: (n * 74dip) - 2dip http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html

Android 4.0: 70 × n - 30 http://developer.android.com/guide/practices/ui_guidelines/widget_design.html#anatomy

C'è anche imbottitura che viene aggiunto automaticamente quando android: targetSdkVersion = "14 o più alto "è impostato.

+0

Grazie per la risposta. La cosa interessante è che ho 2 AVD Android 4.0.3 e 1 lo mostra come un widget 1x1, mentre l'altro mostra un widget 2x2. mio AndroidManifest.xml specifices: mio WXGA800 emulatore (MDPI) è in esecuzione Android 4.0.3. Lo rende correttamente come un widget 1x1. Questo si riflette anche come un widget 1x1 sul mio Transformer Prime. Anche il mio emulatore WXGA720 (xhdpi) funziona con Android 4.0.3. Lo rende come un widget 2x2. – vulcanfk

+1

Interessante. Ho aggiunto un widget_info.xml separato per v14 + per specificare 40dip vice 72dip. Ora viene visualizzato correttamente su tutti i dispositivi di test 4.0.3. Non ho ridimensionato alcuna immagine o specificato diversi drawable per v14 +. – vulcanfk

+0

Qualcuno può spiegare come ha senso? Voglio dire, il widget sembra lo stesso su tutte le versioni, quindi come può richiedere 40dp su Android 4 e 72dp su Android 2.3? Grazie. – Ran