Android Widget - 需要4x2小部件获取1x1小部件

时间:2013-10-12 16:11:44

标签: android xml android-widget widget android-ui

我正在开发我的第一个小部件。
(在Sony Xperia Go上测试)

这是我的widget_info.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" >

    <appwidget-provider
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:initialLayout="@layout/layout_widget"
        android:minHeight="110dp"
        android:minWidth="250dp"
        android:updatePeriodMillis="180000" />

</appwidget-provider>

我正在使用这个公式来计算minHeigh和minWidth 70×n - 30根据给定Here

期待:
enter image description here

获得:
enter image description here

这是我的widget_layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="8dip"
    android:background="@drawable/background_semi_transparent_black"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/upper_row"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="10dp" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/word"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Word" />

            <TextView
                android:id="@+id/meaning"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Meaning.." />
        </LinearLayout>

        <ImageView
            android:id="@+id/shuffle"
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:layout_weight="1"
            android:contentDescription="Shuffle Word List"
            android:src="@drawable/shuffle" />
    </LinearLayout>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="#999"
        android:text="" />

    <LinearLayout
        android:id="@+id/lower_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="10dp" >

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:layout_gravity="left"
            android:layout_weight="1"
            android:gravity="left"
            android:scaleType="fitStart"
            android:src="@drawable/previous" />

        <TextView
            android:id="@+id/list_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="2"
            android:gravity="center"
            android:text="List Name"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:layout_weight="1"
            android:gravity="right"
            android:scaleType="fitEnd"
            android:src="@drawable/next" />
    </LinearLayout>

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

尝试将widget_info.xml更改为:

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

</appwidget-provider>

确保您的小部件在清单中声明android:resource="@xml/widget_info"