当前位置: 首页 > 知识库问答 >
问题:

将文本和图像居中对齐

韦宣
2023-03-14

我正在以列表格式显示文本和图像,但我不能让它们完美地排列在中间,在一条直线上,我错过了什么

下面是我的布局代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" >



    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textSize="14dp"
        android:textStyle="bold"
        android:layout_gravity="center|right"
        android:gravity="center|right"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="10dp"

         />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/textView1"
        android:layout_gravity="center|right"
        android:gravity="center|right"
        android:src="@drawable/image_ls"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="10dp"

         />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center|right"
        android:text="TextView"
         android:textSize="14dp"
        android:layout_toRightOf="@+id/imageView1"
        android:textStyle="bold"
        android:gravity="center|right"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="10dp"
         />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_gravity="center|right"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/textView2"
        android:src="@drawable/image_ls"
        android:gravity="center|right"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="10dp"


         />


</RelativeLayout>

共有2个答案

曾苗宣
2023-03-14

这确实起作用:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:padding="5dp"
    android:gravity="center_vertical|center_horizontal"


    android:background="@color/gray_dark">



    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="TextView"
        android:textSize="14dp"
        android:textStyle="bold"
        android:layout_gravity="center_vertical|right"
        android:gravity="center_vertical|right"
        android:layout_marginLeft="5dp"


        />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_toRightOf="@+id/textView1"
        android:layout_gravity="center_vertical|right"
        android:gravity="center_vertical|right"
        android:src="@drawable/image_ls"
        android:layout_marginLeft="5dp"


        />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical|right"
        android:text="TextView"
        android:textSize="14dp"
        android:layout_toRightOf="@+id/imageView1"
        android:textStyle="bold"
        android:gravity="center_vertical|right"
        android:layout_marginLeft="5dp"

        />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_toRightOf="@+id/textView2"
        android:src="@drawable/image_ls"
        android:layout_gravity="center_vertical|right"
        android:gravity="center_vertical|right"
        android:layout_marginLeft="5dp"



        />


</RelativeLayout>
郦祯
2023-03-14

对于这种情况,我更喜欢线性布局,而不是相对布局。使用这种简单的布局设计,它更容易、更直截了当,您只需要使用:

android:layout_gravity="center_vertical"

并在需要任何其他大小限制时使用权重。以下是您需要的解决方案:

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

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello"
        android:textStyle="bold"
        android:layout_gravity="center_vertical"
        android:layout_marginTop="10dp"

         />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:src="@drawable/ic_launcher"

        android:layout_gravity="center_vertical"
        android:layout_marginTop="10dp"

         />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello"
        android:textStyle="bold"
     android:layout_gravity="center_vertical"
        android:layout_marginTop="10dp"
         />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"

        android:layout_height="wrap_content"
      android:layout_gravity="center_vertical"
        android:src="@drawable/ic_launcher"

        android:layout_marginTop="10dp"


         />

</LinearLayout>
</LinearLayout>
 类似资料:
  • 我有一个容器div,其中高度和宽度设置为100%,位置是相对的。在div I内部,使用display:block和margin:auto将图像居中(图像小于div)。然后我尝试使用position:absolute,left:45%,top 82px将图像中的文本居中。垂直对齐看起来不错,但是随着文本中字符数量的增长,文本不再在中间对齐。因此,在我下面的图像中,如果文本为4个字符,文本将不再居中。

  • 在这个页面上,有一些员工的照片。 在肖像模式的iPad上,员工照片在右手边被切断。 我不介意他们被切断,但我希望他们对齐中心,而不是左对齐。 注意,我希望图像的尺寸是相同的,只是对齐向左移动,变成中心,这样脸就显示在图像边界的中间。 我尝试了以下解决这个问题的方法: 和 和 但这些都不起作用。

  • 我想设置一个JButton,使其图标与它的左侧对齐,而文本居中。 我已经找到了如何让其中一个左,另一个右,或两者在同一个设置,但我找不到我要找的。 当然,我总是可以重新定义绘制方法,但我正在寻找一种更精简的方法。

  • 问题内容: 我有一个div 。其内容水平和垂直居中。 当div中的内容太长时,内容将自动换行。但是在这种情况下,对齐方式会中断。请参阅摘要。 如果我添加正确显示。但是,为什么没有中心呢? 问题答案: flex容器的HTML结构具有三个级别: 容器 该项目 内容 每个级别代表一个独立的独立元素。 该属性是在flex容器上设置的,用于控制flex项目。它不能直接控制项目的子项(在这种情况下为文本)。

  • 我正试图在页面中央对齐两幅有响应的图像。 我在用电脑。容器类,但仍然是向右的。

  • 问题内容: 我正在尝试使用CSS将图像水平居中放置。 我正在使用以下HTML代码在屏幕上显示图像: 我正在裁剪图像,因为我只想显示一些图像,并且正在使用以下CSS: 但是,一旦裁切后,我将无法确定如何居中。 有人能帮忙吗? 问题答案: 这样使用绝对位置和保证金位置