如果图像位于布局的左侧,如何将文本放置在布局的中心?

时间:2017-07-10 12:08:47

标签: android android-relativelayout

在相对布局中,我使用了布局左侧的图像,textview应该是图像的右侧,我需要textview应该是Reltaive布局的中心。任何人都可以帮我实现这个目标吗?

代码:

 <RelativeLayout 
  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"
  tools:context="com.example.z003tcnc.myapplication.MainActivity">

<ImageView
    android:id="@+id/img1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@mipmap/ic_launcher"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text1"
    android:text="Hello World"
    android:maxLines="1"
    android:ellipsize="end"
    android:layout_centerHorizontal="true"
    android:layout_toRightOf="@+id/img1"
  />
</RelativeLayout>

I need an output like this

7 个答案:

答案 0 :(得分:0)

如果您想要相对布局的textview tocenter,请将以下行添加到TextView。

   android:layout_centerInParent="true"

答案 1 :(得分:0)

我认为这就是你要找的东西

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/ic_action_home" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="hello" />
</RelativeLayout>

这就是它的样子

enter image description here

如果您需要,可以将其放入

答案 2 :(得分:0)

根据您的需要设置保证金..

android:layout_marginLeft="100dp"

答案 3 :(得分:0)

假设图像的高度大于文本视图的高度。

使用alignTop&amp; TextView上的alignBottom,使其覆盖与图像相同的高度。然后使用android:gravity="center"

将文本置于TextView中心

编辑::添加代码以相对布局为中心观看

以下是代码:

<RelativeLayout
        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:gravity="center">

        <ImageView
            android:id="@+id/img1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/ic_launcher"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/text1"
            android:text="Hello World"
            android:maxLines="1"
            android:ellipsize="end"
            android:layout_alignTop="@+id/img1"
            android:layout_alignBottom="@+id/img1"
            android:gravity="center"
            android:layout_toRightOf="@+id/img1"
            />
    </RelativeLayout>

注意:我测试了xml布局&amp;它工作

答案 4 :(得分:0)

只改变两行:
将Parent相对布局高度设置为换行内容,并在TextView中添加CenterVertical true,根据需要从左侧设置一些边距。

这是代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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">

<ImageView
    android:id="@+id/img1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_home"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text1"
    android:text="Hello World"
    android:layout_centerHorizontal="true"/>

</RelativeLayout>


[1]: https://i.stack.imgur.com/Mwkm8.png

答案 5 :(得分:0)

这里不使用两个单独的组件,而是使用它:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello world"
        android:maxLines="1"
        android:ellipsize="end"
        android:textSize="22sp"
        android:textColor="#000"
        android:gravity="center"
        android:drawablePadding="16dp"
        android:paddingEnd="16dp"
        android:drawableLeft="@mipmap/ic_launcher"/>

根据您的需要更改参数。

希望它有所帮助!!!

答案 6 :(得分:0)

从TextView中删除以下行:

机器人:layout_toRightOf = “@ + ID / IMG1”

<ImageView
    android:id="@+id/img1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@mipmap/ic_launcher"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text1"
    android:text="Hello World"
    android:maxLines="1"
    android:ellipsize="end"
    android:layout_alignBottom="@+id/img1"
    android:layout_centerHorizontal="true" />