用于可变父级大小的App小部件xml布局

时间:2012-11-04 18:21:32

标签: android xml android-linearlayout relativelayout

我有一个可调整大小的app小部件。我想在图像上方和下方显示文字。图像应占用尽可能多的空间,文本应直接位于图像的上方和下方。

我想仅在xml中执行此操作,但无法找出适用于附加图像中显示的两种情况的布局。

所以我的问题是,我可以通过什么XML来实现这种行为?

编辑:图像视图可能比父容器视图大。

desired layout behavior

1 个答案:

答案 0 :(得分:1)

这样的事情:

<?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="wrap_content" >

    <ImageView
        android:id="@+id/imageview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="center"
        android:layout_alignParentCenter="true"/>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/imageview"
        android:text="text 1"/>


    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/imageview"
        android:text="text 2"/>


</RelativeLayout>

或者,使用布局权重来控制大小调整:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:weightSum="100"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_weight="10"
        android:layout_height="0px"
        android:text="text 1"/>

   <ImageView
        android:id="@+id/imageview"
        android:layout_width="wrap_content"
        android:layout_weight="80"
        android:layout_height="0px"
        android:scaleType="center"
        android:layout_alignParentCenter="true"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_weight="10"
        android:layout_height="0px"
        android:text="text 2"/>

 </LinearLayout>

使用权重,图像对齐和图像比例类型进行播放,以获得您想要的效果。