如何在窗口小部件中的特定位置设置图像和文本?

时间:2015-09-24 13:13:03

标签: android resize widget position

我正在创建一个小部件,我想在特定位置设置文本和图像。我想要像UCCW小部件一样的输出。我尝试过框架布局,相对布局和画布,但没有任何效果。每当我将小部件的大小从2x2调整到某个奇怪的大小(如4x2)时,文本的位置就会变得混乱。我想知道如何在特定位置设置它们,以及在更改小部件大小时没有任何问题时它们如何自动调整大小。

供参考的图片:

Image for reference

谢谢!

1 个答案:

答案 0 :(得分:0)

对可见视图和空白区域使用权重LinearLayout。 这是一个例子:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_red_dark"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center">

        <!--Placeholder (empty space) before.-->
        <FrameLayout
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="3" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_weight="10"
            android:background="@android:color/holo_blue_dark"
            android:gravity="center"
            android:text="Hello" />

        <!--Placeholder (empty space) after. -->
        <FrameLayout
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="7" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="40dp"
        android:gravity="center">

        <!--Placeholder (empty space) before.-->
        <FrameLayout
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="20" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:layout_weight="10"
            android:background="@android:color/holo_orange_dark"
            android:gravity="center"
            android:text="widget" />

        <!--Placeholder (empty space) after. -->
        <FrameLayout
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="6" />
    </LinearLayout>


</RelativeLayout>

小工具2x2: Widget screenshot 2x2

小工具4x2: Widget screenshot 4x2