因此,我阅读了小部件大小并创建了一个250dpX72dp小部件,期望它占用一行4列。在我的2.2设备上它确实显示了预期,但在我的4.2设备上它突然占用了4x2。
我认为每个细胞的大小计算为(细胞* 74) - 2.
小部件定义如下:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/widget"
android:minHeight="72dp"
android:minWidth="250dp"
/>
答案 0 :(得分:3)
您需要从API 11开始应用不同的公式;根据{{3}}其(70 * n) - 30;所以这意味着你应该将minHeight设置为40.你可以在不同的资源文件夹(values
和values-v11
)中为高度创建两个资源,这样你就可以根据旧的指定高度values/<insert fancy name here>.xml
中的公式和values-v11/<insert fancy name here>.xml
请注意,您还应该考虑API 15中的边距,这是以类似的方式完成的:documentation
但是新设备的尺寸似乎还有一个怪癖,其中250dp需要3列而不是4列。
另见http://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout
答案 1 :(得分:0)
看看:
所以似乎72dp映射到2个单元格。
答案 2 :(得分:0)
考虑到Stackoverflow上的多个问题,我并不是唯一一个感到困惑的人。
Google似乎确实改变了 - 非常显着 - 小部件大小的计算。