13

我编写了一个应该是 4x2 主屏幕块的小部件。它的 minheight 和 minwidth,按照目前的“App Widget Design Guidelines”页面是

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

如果系统版本低于 Ice Cream Sandwich,则从 dimens.xml 应用填充

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

4

1 回答 1

11

Lars Vogel 在这个 Home Screen Widget 教程中写道:

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

编辑:显然 Vogel 是从旧的 Widget API 文档中获得的(向下滚动到中间页面以查看参考)。

基于此测量,对于 4 个单元格宽度和 2 个单元格高度,使用 294 x 146 倾角:

<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" />
于 2012-12-19T10:00:47.070 回答