可能是我,但是当我根据 android 页面上给出的公式计算最小应用小部件尺寸时,我没有得到正确的小部件宽度;公式为 follows :
width(n) = (70 x n) - 30
当我想要一个 5x1 小部件时,正确的宽度是 (5 * 70) - 30 = 320dp。然而,在摩托罗拉 Xoom 上测试它时,它解析为 4x1 小部件。我已经测试了不同的值,400dp 在带有 Honeycomb 的摩托罗拉 xoom 上似乎适合 5x1,但随后我会在带有 Gingerbread 的常规 Galaxy Tab 上对其进行测试,然后它会解析为 6x1(正如人们所期望的那样)。
这里有两个问题;
- 我忽略了 Gingerbread 和 Honeycomb 之间有什么区别?
- 既然我知道 ICS 小部件大小不再有小部件之间的填充,那么这里是否也有一些经验法则?
最佳答案
在我的 4x1 小部件中,我将这些尺寸用于 res/values/dimens.xml:
<!-- size = (74 x n) - 2 -->
<dimen name="appwidget_margin">0dp</dimen>
<dimen name="appwidget_min_width">294dp</dimen>
<dimen name="appwidget_min_height">72dp</dimen>
对于 res/values-v14/dimens.xml:
<!-- size = (70 x n) - 30 -->
<dimen name="appwidget_margin">0dp</dimen>
<dimen name="appwidget_min_width">250dp</dimen>
<dimen name="appwidget_min_height">40dp</dimen>
我用过widget templates pack用于背景图片。
在 official guide上面写着 res/values/dimens.xml 中的默认边距应该是 8dp,但是如果我使用 8dp,我的小部件会小于桌面上的标准小部件(谷歌搜索、天气等)。那是因为 v1-v13 的边距是内置在背景图像中的:
我在 HTC Desire、Nexus S、模拟器 Android 2.2 和模拟器 Android 2.3.3 上对其进行了测试。使用上面的模板包背景和配置,我的小部件的大小与其他标准小部件相同,并且在我测试的所有设备上看起来都不错。
各种发射器也存在问题。我推荐这篇文章阅读:http://radleymarx.com/blog/app-widget-padding-margins-in-ics-android/
关于android - Appwidget 大小计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10008521/