2012-02-14 35 views
9

我正在創建1x1 Android Widget。我設計的每一個屏幕密度圖片如下:1x1 Android Widget在WXGA720屏幕上顯示爲2x2 Widget

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 

我的小窗口規範:

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

在WVGA800屏幕(華電國際),小部件的1x1。 在WXGA800屏幕(mdpi)上,該部件爲1x1。 在WXGA720屏幕(xhdpi)上,該部件爲2x2

有人能指點我這裏的錯誤嗎?

+1

只是爲了確認,你是說你的應用程序小部件捲起288x288像素?順便說一下,'1000'的'updatePeriodMillis'將不起作用,因爲最短時間爲30分鐘。 – CommonsWare 2012-02-14 19:25:06

+0

是的,我沒有實際使用updatePeriodMillis。這只是一個將被刪除的殘餘。 我的小部件顯示爲2x2小部件,但圖像爲144x144。因此,2x2小部件具有出現在左上角的1​​x1圖像。其他3個「細胞」是空的,但不能被佔用。小部件選擇屏幕(Android 4.0.3)將其顯示爲2x2小部件。 – vulcanfk 2012-02-14 19:30:30

回答

12

之前的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

還有自動添加填充時機器人:targetSdkVersion =「14或更高「。

+0

感謝您的回覆。有趣的是,我有2個Android 4.0.3 AVD,1個將其顯示爲1x1小部件,另一個顯示2x2小部件。 我的AndroidManifest.xml specifices: <使用-SDK機器人:的minSdkVersion = 「10」 機器人:targetSdkVersion = 「15」/> 我WXGA800仿真器(MDPI)的運行Android 4.0.3。它正確地將其呈現爲1x1小部件。這也反映爲我的Transformer Prime上的1x1小部件。 我的WXGA720模擬器(xhdpi)也運行Android 4.0.3。它將它呈現爲2x2小部件。 – vulcanfk 2012-02-14 21:12:03

+1

有趣。我爲v14 +添加了一個單獨的widget_info.xml來指定40dip副72dip。它現在可以在所有4.0.3測試設備上正確渲染。我沒有調整任何圖像的大小,或者爲v14 +指定了不同的繪圖。 – vulcanfk 2012-02-14 21:23:30

+0

有人可以解釋它是如何有意義的?我的意思是,小部件在所有版本上看起來都是一樣的,那麼Android 4和Android 2.3上的40dp需要40dp呢?謝謝。 – Ran 2012-04-22 07:53:03