Android RelativeLayout在另一个元素边框上对齐元素

时间:2014-04-01 10:42:26

标签: android android-layout android-xml

我试图让文本视图与RelativeLayout中另一个imageview的左边框对齐,但是我遇到了麻烦,我无法实现这一点。任何人都可以告诉我如何实现这一目标?

enter image description here

enter image description here

这是我当前的XML布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="15dp"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/main_item_bg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:contentDescription="@string/app_name"
        android:scaleType="fitXY" />

    <RelativeLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/blackalha"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:weightSum="100" >

        <TextView
            android:id="@+id/main_item_cont"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_centerVertical="true"
            android:layout_toLeftOf="@+id/main_item_nmb"
            android:paddingLeft="5dp"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@android:color/white" />

        <ImageView
            android:id="@+id/main_item_ic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:background="@color/app_purple"
            android:src="@drawable/bacal" />

        <TextView
            android:id="@+id/main_item_nmb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toLeftOf="@+id/main_item_ic"
            android:background="@drawable/saric"
            android:gravity="center"
            android:textColor="#333333" />

    </RelativeLayout>

    <TextView
        android:id="@+id/main_item_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignTop="@+id/main_item_bg"
        android:layout_margin="5dp"
        android:maxWidth="200dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@android:color/white" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:6)

Try this
<?xml version="1.0" encoding="utf-8"?>

<ImageView
    android:id="@+id/main_item_bg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:contentDescription="@string/app_name"
    android:scaleType="fitXY" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="80dip"
        android:gravity="center"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/main_item_cont"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:gravity="center"
            android:paddingLeft="5dp"
            android:text="dsgffdufsdfdfsdfdsfsdfsdfdsfdf"
            android:inputType="textMultiLine"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@android:color/white" />


        <ImageView
            android:id="@+id/main_item_ic"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="5dip"
            android:layout_alignParentRight="true"
            android:layout_toRightOf="@+id/main_item_cont"
            android:background="@android:color/black"
            android:src="@drawable/ic_launcher" />


        <TextView
            android:id="@+id/main_item_nmb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:layout_alignTop="@+id/main_item_cont"
            android:layout_toRightOf="@+id/main_item_cont"
            android:background="@android:color/white"
            android:text="10"
            android:textColor="@android:color/white" />
    </RelativeLayout>


<TextView
    android:id="@+id/main_item_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignTop="@+id/main_item_bg"
    android:layout_margin="5dp"
    android:maxWidth="200dp"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/white" />

答案 1 :(得分:1)

正如@Salauyou所提到的,尝试使用 android:layout_alignLeft ,因为它&#34;使此视图的左边缘与给定锚点视图ID的左边缘匹配&#34; 和 android:layout_toLeftOf 表示&#34;将此视图的右边缘定位在给定锚点视图ID的左侧。&#34;

答案 2 :(得分:0)

现在,这就是我所取得的成就:

enter image description here

我在drawable-mdpi(作为徽章)中使用了这张图片 - 请注意双重背景的技巧:

enter image description here

和标准发射器图标,因为我没有方便的酒杯图标。

这是我的布局:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:layout_margin="0dp"
    android:padding="0dp"
    >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="0dp"
        android:padding="4dp"
        >
        <TextView
            android:id="@+id/txtIcon"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_alignParentRight="true"
            android:gravity="center"
            android:padding="4dp"
            android:background="#6b2339"
            android:drawableRight="@drawable/ic_launcher"
        />
        <TextView
            android:id="@+id/txtBadge"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:layout_toLeftOf="@id/txtIcon"
            android:gravity="center"
            android:padding="4dp"
            android:background="@drawable/wines_crossing_badge"
            android:text="8"
            android:textColor="#312c23"
            android:textSize="16sp"
        />
        <TextView
            android:id="@+id/txtDesc"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@id/txtBadge"
            android:background="#312c23"
            android:gravity="left|center_vertical"
            android:padding="4dp"
            android:text="Available Androids in stock for rental"
            android:textColor="#fff"
            android:textSize="16sp"
        />
    </RelativeLayout>
</RelativeLayout>