Android Appwidget大小计算
可能是我,但当我根据android页面上给出的公式计算应用程序小部件的最小尺寸时,我没有得到正确的小部件宽度;公式如下: 宽度(n)=(70 x n)-30 当我想要一个5x1小部件时,正确的宽度应该是(5*70)-30=320dp。然而,当在摩托罗拉Xoom上测试时,它被分解为4x1小部件。我已经测试了不同的值,400dp似乎适用于带有蜂巢的摩托罗拉xoom的5x1,但随后我会在带有姜饼的常规Galaxy标签上测试它,然后它会解析为6x1(就像人们所期望的那样) 这里有两个问题Android Appwidget大小计算,android,android-4.0-ice-cream-sandwich,android-3.0-honeycomb,android-appwidget,android-2.3-gingerbread,Android,Android 4.0 Ice Cream Sandwich,Android 3.0 Honeycomb,Android Appwidget,Android 2.3 Gingerbread,可能是我,但当我根据android页面上给出的公式计算应用程序小部件的最小尺寸时,我没有得到正确的小部件宽度;公式如下: 宽度(n)=(70 x n)-30 当我想要一个5x1小部件时,正确的宽度应该是(5*70)-30=320dp。然而,当在摩托罗拉Xoom上测试时,它被分解为4x1小部件。我已经测试了不同的值,400dp似乎适用于带有蜂巢的摩托罗拉xoom的5x1,但随后我会在带有姜饼的常规Galaxy标签上测试它,然后它会解析为6x1(就像人们所期望的那样) 这里有两个问题 姜饼和蜂巢有
- 姜饼和蜂巢有什么区别李>
- 既然我知道ICS小部件大小不再在小部件之间有填充,这里是否也有一些经验法则
- 在集成电路中,没有填充,而是自动填充。你用的公式是ICS的。
对于旧版本,还有另一个公式:
num*74 - 2
没有太多的设备完全遵循谷歌的建议公式。最好使用几个xml xxx文件夹,这些文件夹可以指定更精确的最小宽度和最小高度,以对应不同的屏幕和操作系统 目前,我仅基于操作系统:
xml // standard
xml-v11 // Honeycomb grid
xml-v14 // ICS's new extra padding
xml-sw552dp-v14 // ICS tablet padding
但当我进行微调时,我可能需要为特定的DPI或屏幕添加一些新文件夹
快速更新:
只有一些设备使用自动填充。三星和HTC拥有使用全幅面小部件的定制UI,因此它们覆盖了启动器上的操作系统填充。在我的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>
<!-- 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>
0dp
294dp
72dp
对于res/values-v14/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>
<!-- 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>
0dp
250dp
40dp
我用于背景图像。
在这本书中,res/values/dimens.xml中的默认边距应该是8dp,但如果我使用8dp,我的小部件比桌面上的标准小部件(谷歌搜索、天气等)小。这是因为v1-v13的边距构建在背景图像中:
我在HTC Desire、Nexus S、仿真器Android 2.2和仿真器Android 2.3.3上测试了它。使用上面的模板包背景和配置,我的小部件的大小与其他标准小部件相同,在我测试的所有设备上都很好看
各种发射器也有问题。我建议阅读本文:注意:如果您以pre-Honeycomb为目标(或者在Honeycomb之前指定minSdkVersion时未指定targetSdkVersion),则Honeycomb网格(和ICS网格)计算不会生效。这样做的缺点是您错过了更新的操作系统功能,但如果您实际上不需要这些功能,那么保留target pre Honeycom将省去定制xml文件夹的麻烦。因此368dp应该足以满足摩托罗拉xoom上5x1 widget width的要求,根据您的公式,除了它没有,因为我仍然得到一个4x1小部件的宽度:/只有一些设备使用自动填充。三星和HTC都有使用全幅面小部件的定制UI,因此它们覆盖了启动器上的操作系统填充;宽度ICS(n)=(70 x n)-30仅用于ICS,宽度(n)=(74 x n)-2用于姜饼和更早的产品。我在姜饼配方中添加了2*8,显然是为了得到正确的蜂窝状尺寸,我猜这并不准确,但很有效。@MrJre在我的主屏幕小部件中使用姜饼和早期的蜂窝状配方时,我没有任何问题。试过emulator(是的,我很有耐心)和Galaxy Tab 10。1@radley:“没有太多的设备完全遵循谷歌建议的公式”。嗯,我的Nexus7和Android股票报告了我的4x3的3x3小部件。我使用的是minWidth=250dp和minHeight=180dp,正如文档中建议的那样。如果谷歌赞助的设备表现出这样的行为,我们能从其他人那里得到什么…@Jose_GD有一个适合每个人的最佳选择。不过,我想不起这个公式了……这三个系统的最小宽度/最小高度值不同。我们在很多设备上进行了测试,找到了这个最佳点。对于一个4网格范围的小部件:basic xml-android:minWidth=“288dp”、xml-v11-android:minWidth=“318dp”和xml-v14-android:minWidth=“250dp”适用于所有设备。顺便说一句,你推荐的博客文章的作者就是在这里写出公认答案的那个人;)