中心ImageView和TextView并排

时间:2014-12-21 12:50:02

标签: android android-layout relativelayout

我想将所有内容布局集中到中心,但这是我遇到的问题:

enter image description here

正如您所看到的,我希望将图像和文本置于父级中心,但希望将图像保留在文本的左侧。

这是布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/app_light_green" >

    <ImageView
        android:id="@+id/toastImage"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_centerInParent="true"
        android:paddingTop="1dp"
        android:src="@drawable/exclamation" />

    <TextView
        android:id="@+id/toastText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:gravity="center"
        android:paddingBottom="3dp"
        android:paddingLeft="5dp"
        android:paddingRight="3dp"
        android:paddingTop="2dp"
        android:textColor="@color/app_darker_green"
        android:textSize="@dimen/sixteen_sp" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:4)

您可以使用水平Linearlayout并在其中添加TextView和ImageView,然后在Relativelayout中添加Linearlayout并使其居中。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/toastImage"
        android:layout_width="24dp"
        android:src="@drawable/exclamation"
        android:layout_height="24dp"
        android:paddingTop="1dp" />

    <TextView
        android:id="@+id/toastText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:paddingBottom="3dp"
        android:paddingLeft="5dp"
        android:paddingRight="3dp"
        android:paddingTop="2dp"
        android:textColor="@color/app_darker_green"
        android:textSize="@dimen/sixteen_sp"/>
</LinearLayout>

</RelativeLayout>

答案 1 :(得分:1)

尝试使用framelayout。 在framelayout中,添加imageview和textview,将重力指定为imageview,重力指定为textview的中心。并且atlast为imageview提供一些左边距,以便将其与textview对齐。

具有relativelayout的替代soln是, 在您的imageview标记中使用属性  align_toLeftOf =“@ + ID / R.id.Textview1"

从imageview中移除父级中心。 你的问题将得到解决。

请忽略我从手机输入此答案的语法。 :)

答案 2 :(得分:0)

我也带来了我的......只是为了简单

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/app_light_green" >


<TextView
    android:id="@+id/toastText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:gravity="center"
    android:paddingBottom="3dp"
    android:paddingLeft="5dp"
    android:drawableLeft="@drawable/exclamation"
    android:paddingRight="3dp"
    android:paddingTop="2dp"
    android:textColor="@color/app_darker_green"
    android:textSize="@dimen/sixteen_sp" />

</RelativeLayout>

与我一起,你不必担心imageview,你只需将你的textview放在所有的中心..