所以我阅读了小部件的大小,并创建了一个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"
   />

最佳答案

你需要从api 11开始应用不同的公式;根据documentationits(70*n)-30;所以你应该将minheight设置为40。您可以为不同资源文件夹中的高度创建两个资源(即valuesvalues-v11),这样您就可以根据values/<insert fancy name here>.xml中的旧公式指定高度,并根据values-v11/<insert fancy name here>.xml中的新公式指定高度。
请注意,您还应该考虑API 15以上的利润率,这是以类似的方式完成的:http://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout
不过,在较新的设备上进行尺寸调整似乎仍有一个怪癖,250dp将采用3列而不是4列。
另见Appwidget size calculation

08-18 15:05