为不同的 Android 版本支持不同的小部件非常简单。
为了支持 Android 版本 >= 4.0,您必须将小部件的内容放在正确的文件夹中。
/res/xml-v14
/res/layout-v14
[选修的]
-v14
表示 API-Level 14 (Android 4.0)。Android 版本高于或等于 4.0 将使用这些文件夹中的文件。不要忘记计算android:minWidth
和android:minHeight
使用正确的公式:
cell_size in dp = 70 × n − 30
您可以将工作小部件留在现有文件夹中:
使用正确的论坛:
cell_size in dp = 74 × n - 2
为了保持简单并重复使用计算的尺寸,您还可以在正确的文件夹中创建正确的尺寸并参考尺寸。
- 创建一个
/res/values/widget_size.xml
包含 Android 版本 < 4.0 的尺寸的文件
<resources>
<dimen name="cell_size_1">72dp</dimen>
<dimen name="cell_size_2">146dp</dimen>
</resources>
- 创建一个
/res/values-v14/widget_size.xml
包含 Android 版本 >= 4.0 的尺寸的文件
<resources>
<dimen name="cell_size_1">40dp</dimen>
<dimen name="cell_size_2">110dp</dimen>
</resources>
android:minWidth="@dimen/cell_size_2"
android:minHeight="@dimen/cell_size_1"
不幸的是,这不适用于运行 Android 4.04 的 Galaxy Tab 7.7。3x1 小部件是 2x1,尽管它在模拟器上显示正确的大小。我认为这是因为
虽然单元格的宽度和高度以及应用于小部件的自动边距数量可能因设备而异,但您可以使用下表粗略估计小部件的最小尺寸,给定所需的占用网格单元数:
在App Widget Design Guidelines中说明