图像中间的AlignTextView(水平)

时间:2016-02-04 10:19:56

标签: android image alignment textview

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

图片可以帮助我解释:

enter image description here

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

<?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>

4 个答案:

答案 0 :(得分:1)

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

<?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>

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

答案 1 :(得分:1)

尝试替换您要与之对齐的textview:

 <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" />

这将使您的文本视图与您的imageview对齐,文本将以中心重力显示。

问题是指您的图片小于文字大小或文字行。

答案 2 :(得分:0)

试试这个 - &gt;

             <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>

答案 3 :(得分:0)

试试这个:

<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>