我有一个150 x 210 dp的xhdpi设备小部件(API 14+)。当我添加小部件时,它占用的空间比它应该多。它允许我调整它以占用更小的空间(但是为什么它没有以最小尺寸添加(比如当我调整它时)?)因为我大小调整它以使其变小,我想我指定的值最小大小是正确的...我的期望是默认占用我指定的最小尺寸,不仅仅是在我调整大小时......
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="@dimen/recording_widget_min_width"
android:minHeight="@dimen/recording_widget_min_height"
android:updatePeriodMillis="86400000"
android:previewImage="@drawable/ic_launcher"
android:initialLayout="@layout/recording_widget_layout"
android:resizeMode="horizontal|vertical"
android:widgetCategory="home_screen">
</appwidget-provider>
values-xhdpi-v14
文件夹:
<resources>
<dimen name="recording_widget_min_width">150dp</dimen>
<dimen name="recording_widget_min_height">210dp</dimen>
</resources>
答案 0 :(得分:1)
minWidth和minHeight顾名思义,最小值。他们说图像可能比这些值大,但不能更小。
例如,如果将minWidth和minHeight都设置为100,但是您提供的资源a的内部大小为50 x 50,则它将被拉伸到100 x 100.但是如果您提供的资源大于100 x 100它将以它的固有宽度和高度绘制。
为了更好地理解,研究android如何将视图绘制到屏幕上。特别是在onMeasure中查看MeasureSpecs的使用。有关这方面的非常好的解释可以在FlowLayout example at the end of this video lecture by Romain Guy.
中看到