2012-02-14 59 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