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