小部件错误的网格大小

时间:2012-12-12 07:07:01

标签: android widget sizing android-appwidget

我写过一个应该是4x2主屏幕块的小部件。它是minheight和minwidth,根据当前的“App Widget Design Guidelines”页面是

android:minWidth="250dp"
android:minHeight="110dp"

如果系统版本低于冰淇淋三明治,则从dimens.xml应用填充

在我的Nexus 4(xhdpi,Jellybean 4.2.1)上,这个小部件是4x2。在模拟器(hdpi,Gingerbread 2.3.3)上,这个小部件是4x2。然而,在我的Nexus 7(hdpi,Jellybean 4.2.1)上,小部件是3x2。我不能为我的生活弄清楚为什么或如何解决它。有什么想法吗?

1 个答案:

答案 0 :(得分:11)

Lars Vogel在this Home Screen Widget tutorial写道:

  

作为计算规则,您应该使用以下公式定义窗口小部件的大小:((列数/行数)* 74) - 2.这些是设备无关的像素,-2用于避免舍入问题。< / p>

编辑:显然Vogel从old Widget API documentation获得了它(向下滚动到中间页面以查看参考)。

基于此测量,对于4个细胞宽度和2个细胞高度,使用294 x 146 dip:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dip" android:minHeight="146dip"
    android:updatePeriodMillis="0" android:initialLayout="@layout/some_layout" />