所以我阅读了小部件的大小,并创建了一个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。您可以为不同资源文件夹中的高度创建两个资源(即values
和values-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