【问题标题】:AlignTextView in the middle of Image (horizontal)在 Image 中间对齐 TextView(水平)
【发布时间】:2016-05-13 21:43:34
【问题描述】:

我必须在ImageView 中间对齐一个TextView-->ImageButton,我知道这并不难,但我的问题来了,因为图像可以有可变大小,所以当我得到不同的图像时,文本视图会四处移动,并且不会在图像中间保持水平对齐。

一张图片可以帮助我解释:

此时我将图像和文字设置为:

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

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

        <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_circuitomedico"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:elevation="12dp" />

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


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="20dp"
        android:layout_marginStart="20dp"
        android:layout_marginTop="20dp"
        android:text="@string/professional"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/circ_profesionall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp"
        android:layout_toRightOf="@+id/textView1"
        android:layout_toEndOf="@+id/textView1"
        android:text="@string/medico_test"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_alignStart="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="12dp"
        android:text="@string/medical_service"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Spinner
        android:id="@+id/circ_spin_tipus"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView3"
        android:layout_alignStart="@+id/textView3"
        android:layout_marginTop="12dp"
        android:layout_below="@+id/textView3" />

    <Spinner
        android:id="@+id/circ_spin_tipocons"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/circ_spin_tipus"
        android:layout_alignStart="@+id/circ_spin_tipus"
        android:layout_marginTop="12dp"
        android:layout_below="@+id/circ_spin_tipus" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/circ_spin_tipocons"
        android:layout_alignStart="@+id/circ_spin_tipocons"
        android:layout_below="@+id/circ_spin_tipocons"
        android:text="@string/circuit_curesnafres"
        android:layout_marginTop="12dp"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView4"
        android:layout_alignStart="@+id/textView4"
        android:layout_below="@+id/textView4"
        android:layout_marginTop="12dp"
        android:text="@string/circuit_nhc"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Spinner
        android:id="@+id/circ_spin_tipolesion"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView5"
        android:layout_alignStart="@+id/textView5"
        android:layout_below="@+id/textView5"
        android:layout_marginTop="12dp" />

    <Spinner
        android:id="@+id/circ_spin_local"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/circ_spin_tipolesion"
        android:layout_alignStart="@+id/circ_spin_tipolesion"
        android:layout_below="@+id/circ_spin_tipolesion"
        android:layout_marginTop="12dp" />

    <Spinner
        android:id="@+id/circ_spin_escalas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/circ_spin_local"
        android:layout_alignStart="@+id/circ_spin_local"
        android:layout_below="@+id/circ_spin_local"
        android:layout_marginTop="12dp" />

    <EditText
        android:id="@+id/circ_box_descrip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/circ_spin_escalas"
        android:layout_alignStart="@+id/circ_spin_escalas"
        android:layout_below="@+id/circ_spin_escalas"
        android:layout_marginTop="12dp"
        android:layout_marginRight="20dp"
        android:layout_marginEnd="20dp"
        android:ems="12"
        android:inputType="textMultiLine" >

    </EditText>

    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/circ_box_descrip"
        android:layout_alignStart="@+id/circ_box_descrip"
        android:layout_below="@+id/circ_box_descrip"
        android:layout_marginTop="12dp"
        android:src="@drawable/button_picture" />

    <TextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/imageButton1"
        android:layout_marginTop="30dp"
        android:layout_toRightOf="@+id/textView1"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>
</LinearLayout>
</ScrollView>

【问题讨论】:

  • 发布完整的 xml 代码...
  • 我只看到 1 个图像按钮,而你画了 2 个
  • 好的..下面的任何答案都没有...?

标签: android image alignment textview


【解决方案1】:

试试这个-->

             <RelativeLayout
                android:id="@+id/relative"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

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

                <TextView
                    android:id="@+id/text"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@id/image"
                    android:layout_alignLeft="@id/image"
                    android:layout_alignRight="@id/image"
                    android:layout_alignTop="@id/image"
                    android:gravity="center"
                    android:maxLines="5"
                    android:textColor="#000000"
                    android:textSize="8dp"
                    android:textStyle="bold" />


            </RelativeLayout>

【讨论】:

    【解决方案2】:

    试试这个:

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_weight="100">
    
        <ImageView
            android:id="@+id/image1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:src="@drawable/clock_number"/>
    
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="50"
            android:layout_marginStart="12dp"
            android:text="Hello World!" />
    </LinearLayout>
    

    【讨论】:

      【解决方案3】:

      根据您的要求,这是最好的:-

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent">   
      
      <ImageView
              android:layout_width="match_parent"
              android:layout_height="match_parent" 
              android:src="@drawable/img"/>
       <TextView
             android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="im in Center"
              android:textStyle="bold"
              android:textSize="30sp"
              android:layout_centerInParent="true"
              android:layout_centerHorizontal="true"/>
      
      </RelativeLayout>
      

      谢谢你,并有一个最好的编程..

      【讨论】:

        【解决方案4】:

        尝试替换您想要与之对齐的文本视图:

         <TextView
                        android:id="@+id/textView6"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignBottom="@+id/imageButton1"
                        android:layout_alignTop="@+id/imageButton1"
                        android:layout_toRightOf="@+id/imageButton1"
                        android:gravity="center"
                        android:text="Medium Text"
                        android:textAppearance="?android:attr/textAppearanceMedium" />
        

        这将使您的文本视图与您的图像视图对齐,并且文本将以重心显示。

        问题是如果你的图片会小于文字大小或文字行数。

        【讨论】:

        • 我会试试的,我想我不会有你说的这个问题,因为据我所知,图像,我会超过 50dp 的平方... :D
        猜你喜欢
        • 2019-12-02
        • 1970-01-01
        • 1970-01-01
        • 2013-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-26
        相关资源
        最近更新 更多