2012-02-14 17 views
9

Tworzę widżet Androida 1x1. Mam zaprojektowane obrazy dla każdej gęstości ekranu, co następuje:Widżet 1x1 Android widziany jako widżet 2x2 na ekranie 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 

Moje specyfikację widget:

<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> 

Na ekranach WVGA800 (hdpi), widget jest 1x1. Na ekranach WXGA800 (mdpi) widżet ma wartość 1x1. Na ekranach WXGA720 (xhdpi) widżet ma postać 2x2.

Czy ktoś może wskazać mi, co jest nie tak?

+1

Po prostu, aby potwierdzić, mówisz, że widżet aplikacji kończy się 288 x 288 pikseli? BTW, 'updatePeriodMillis' z' 1000' będzie nieskuteczne, ponieważ minimalny czas to 30 minut. – CommonsWare

+0

Tak, faktycznie nie używam updatePeriodMillis. To tylko pozostałość, która zostanie usunięta. Mój widget jest wyświetlany jako widżet 2x2, ale obraz ma 144x144. Zatem widżet 2x2 ma obraz 1x1, który pojawia się w lewym górnym rogu. Pozostałe 3 "komórki" są puste, ale nie mogą być zajęte. Ekran wyboru widżetów (Android 4.0.3) pokazuje go jako widżet 2x2. – vulcanfk

Odpowiedz

12

Przed Android 4,0 (n * 74dip) - 2dip http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html

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

Jest także wypełnienie, które są automatycznie dodany po ANDROID targetSdkVersion = "14 lub wyższa "jest ustawiona.

+0

Dzięki za odpowiedź. Co ciekawe, mam 2 Android AVD na Androida 4.0.3, a 1 pokazuje go jako widżet 1x1, a drugi pokazuje widżet 2x2. My AndroidManifest.xml specifices: My emulatora WXGA800 (MDPI) Androidem 4.0.3. Poprawnie renderuje go jako widżet 1x1. Jest to również odzwierciedlone jako widget 1x1 na moim Transformer Prime. Mój emulator WXGA720 (xhdpi) również działa pod kontrolą Androida 4.0.3. To renderuje go jako widżet 2x2. – vulcanfk

+1

Interesujące. Dodałem oddzielny widget_info.xml dla v14 +, aby określić 40dip vice 72dip. Teraz renderuje się poprawnie na wszystkich urządzeniach testujących 4.0.3. Nie zmieniłem rozmiaru żadnych obrazów ani nie wskazałem innych rysunków dla v14 +. – vulcanfk

+0

Czy ktoś może wyjaśnić, w jaki sposób ma to sens? Mam na myśli to, że widżet wygląda tak samo we wszystkich wersjach, więc jak może zająć 40dp na Androidzie 4 i 72dp na Androidzie 2.3? dzięki. – Ran

Powiązane problemy