小工具在主屏幕中伸展。

时间:2013-05-29 05:32:32

标签: android android-layout android-widget widget

我使用下面的代码。

在我的清单文件中。

 <receiver android:name=".ButtonWidget" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                <!-- Broadcast Receiver that will also process our self created action -->
                <action android:name="<package name>.android.widget.buttons.ButtonWidget.ACTION_WIDGET_RECEIVER"/>
            </intent-filter>
            <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget" />
        </receiver>

在我的xml文件夹appwidget文件中。

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

>
</appwidget-provider>

以下是我的widget_layout文件。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:gravity="center"
    android:orientation="horizontal"
>
    <Button
        android:id="@+id/widget_ibtn_onoff"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:background="@drawable/widget"
        android:layout_weight="1"
    />

</LinearLayout>

drawable widget尺寸如下。

drawable-hdpi - 60px
drawable-ldpi - 30px
drawable-mdpi - 40px
drawable-xhdpi - 80px

在我的星系中,nexus看起来就像下面的截图。 enter image description here

由于 吉里什

1 个答案:

答案 0 :(得分:1)

尝试使用此布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal">

    <Button
        android:id="@+id/widget_ibtn_onoff"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:background="@drawable/widget" />

</LinearLayout>