如何在Android主屏幕上制作4x1尺寸的小部件?

时间:2011-11-12 01:55:35

标签: android widget homescreen

我在为Android开发4x1小部件时遇到了困难。

这是appprovider

<?xml version="1.0" encoding="utf-8"?> <appwidget-provider
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dp"
    android:minHeight="72dp"
    android:initialLayout="@layout/main" />

这是main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="320dp"
    android:layout_height="100dp"
    android:gravity="center_vertical|center_horizontal"
    android:orientation="horizontal"> 
//content goes here
</LinearLayout>

我可以看到小部件,但大小是4x2。我混淆了为什么我不能拥有4x1小部件大小?

由于

3 个答案:

答案 0 :(得分:34)

我不认为这是一个新手的错误..我有一个大小为1x1的appWidget。我把它设置为72dp x 72dp,它工作正常..但似乎谷歌改变了小部件尺寸大小公式

(cells * 74) - 2

(cells * 70) - 30

所以现在我的小部件的默认大小必须是40dp x 40dp ..

来源:http://developer.android.com/guide/practices/ui_guidelines/widget_design.html#anatomy_determining_size

答案 1 :(得分:4)

在ICS中,它必须显示4x2。

要更正此问题,请在'res'名称'xml-v14'中创建一个文件夹:

在此处定义具有相同xml名称的widget appwidget-provider。只需将minHeight更改为40dp。 这将纠正错误。

希望这对你有所帮助。

答案 2 :(得分:1)

我认为,问题出在这里:

<块引用>

android:layout_height="100dp"

如果您将其 (layout_height) 修复为此尺寸 (100dp),您将无法更改 Widget 尺寸小于您设置的 75dp。

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="320dp"
        android:layout_height="100dp"
       android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:orientation="horizontal"> 
    //content goes here
    </LinearLayout>