将ImageView对齐LinearLayout中的右上角

时间:2016-06-30 06:21:54

标签: android imageview android-linearlayout

这就是我想要的:

[屏幕快照]

enter image description here

这就是我所做的:

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


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="1dp"
        android:background="@color/color"
        android:orientation="horizontal">

        <View
            android:id="@+id/divider"
            android:layout_width="5dp"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:background="@color/grey"
            android:gravity="center_vertical" />


    <LinearLayout
        android:id="@+id/llayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/color"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/label"
            style="@style/some_style"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_marginLeft="8dp"
            android:gravity="left" />

        <TextView
            android:id="@+id/label2"
            style="@style/some_style"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_marginLeft="8dp"
            android:gravity="left" />

    </LinearLayout>

    </LinearLayout>

</merge>

我已经做了差不多,但问题是如何在垂直线性布局的右上角对齐图像(可以在屏幕截图中看到)。

此外,我尝试使用相对布局,图像位于右上角,但它正在文本视图中剪切我的文本。

请建议:

5 个答案:

答案 0 :(得分:2)

LinearLayut放在RelativeLayout内,其中包含ImageView并适用于ImageView属性android:layout_alignParentRight="true"

答案 1 :(得分:0)

您可以通过imageview

的layout_gravity属性进行设置
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.fierbasedemo.MainActivity">

    <ImageView
        android:id="@+id/tv_name"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_gravity="right" />
</LinearLayout>

答案 2 :(得分:0)

android:layout_gravity="right"应用于imageview的父布局

答案 3 :(得分:0)

您需要将ImageView作为LinearLayout的Top元素,并将其重力设为:

android:layout_gravity="right|end"

如果可能,为该ImageView提供静态大小。

答案 4 :(得分:0)

就我而言,解决了反相问题。只需将LinearLayout放在您的RelativeLayout内,然后仅将图像设置在RelativeLayout上即可。

对我来说,使用此设置可以达到目的。

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@layout/list_bg_selector">

            <ImageView
                android:id="@+id/book_img_id"
                android:layout_width="match_parent"
                android:layout_height="110dp"
                android:scaleType="centerCrop"/>

            <TextView
                android:id="@+id/book_title_id"
                android:textColor="@color/azul_band"
                android:textSize="10sp"
                android:gravity="center"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="Book Title"/>
        </LinearLayout>
        <ImageView
            android:id="@+id/imgFavorito"
            android:layout_width="32dp"
            android:layout_height="32dp"
            android:layout_alignParentRight="true"
            android:layout_gravity="right|end"
            android:src="@drawable/bookmark_off"
            android:layout_marginRight="2dp"
            android:paddingTop="3dp"/>
    </RelativeLayout>