Android xml - 以相对布局覆盖文本/图像

时间:2011-11-07 08:50:34

标签: android android-layout

我正在尝试为ListActivity的每一行创建背景。我有两个背景图像,我需要并排放置。有一个leftshopitem图像,用作项目图标的占位符,以及rightshopitem图像,用于写入文本信息。

基本上我想要以下属性:我需要将图像图标置于leftshopitem图像的中心,我需要将textViews显示在rightshopitem图像上。

目前,我有这个代码 - 我意识到这是非常错误的。背景图像显示正确对齐,但图标和文本不对齐。我想我的问题是,如何将一个imageView设为'父',以便我可以将其他对象放在相对于它的位置。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

        <ImageView
            android:id="@+id/leftbackground"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:src="@drawable/leftshopitem" />

        <ImageView
            android:id="@+id/img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_centerInParent="true"
        />

        <ImageView
        android:id="@+id/rightbackground"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/leftbackground"
        android:src="@drawable/rightshopitem" />


    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingLeft="10dp" 
         >
    <TextView
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#000000"
       />

    <TextView
        android:id="@+id/weight"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:textSize="16sp"
         />

    </LinearLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

您可以使用android_layout_toLeftOf="@id/leftbackground", android_layout_toRightOf="@id/leftbackground"等来“放置相对于其位置的其他对象”。

如果您改为使用android:align_parentLeft="true"等,则可以根据需要将一个视图放在另一个视图之上。

您还可以使用android:background="@drawable/leftshopitem"在其中一个RelativeLayouts中将图像设置为背景(与“使图像成为'父级'”相同)。