android - Appwidget 大小计算

标签 android android-4.0-ice-cream-sandwich android-3.0-honeycomb android-appwidget android-2.3-gingerbread

可能是我,但是当我根据 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 的边距是内置在背景图像中的:

enter image description here

我在 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/

相关文章:

android - 自定义 android map 位置?

android - 调用 FirebaseInstanceId.getToken 的行为

android - 单击时隐藏和显示搜索 View

android - 为什么我不能强制我的一个 View 在软件中呈现?

android - 如何在 ActionBar 的右侧保持展开的 SearchView(使用自定义图标时)?

android - 连接到手机后,Android Auto 媒体应用程序如何显示?

android - 如何打开 android 内置的下载应用程序?

android - 如何避免在按下搜索按钮时关闭 DialogFragment - Android

Android 选项卡操作栏

Android Honeycomb - 更改 Actionbar 样式