0

我想在文本的左侧有一个图像。我希望图像和文本都位于屏幕的水平中心。所以我创建了下面的布局。但是,虽然在 eclipse 图形布局上一切看起来都是正确的,但在真实设备上,图像一直出现在图像顶部,就好像我使用了 drawableTop 一样。

<RelativeLayout
    android:id="@+id/animal"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:layout_below="@id/the_bar"
    android:layout_centerHorizontal="true"
    android:background="#FFFFFF"
    android:clickable="true"
    android:onClick="onAnimalClicked" >

    <TextView
        android:id="@+id/animal_textview"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_centerHorizontal="true"
        android:drawableLeft="@drawable/animal_button"
        android:drawablePadding="5dp"
        android:gravity="center_vertical"
        android:text="Add to Animals"
        android:textColor="#258BE2"
        android:textStyle="bold" />
</RelativeLayout> 
4

3 回答 3

1

如果您想在图像视图/另一个视图上重叠文本,则不能使用 RelativeLayout。这是因为布局的本质是使视图排斥其他视图。如果一个视图在另一个视图之上,它会自动被推到默认位置并忽略写入的属性。

因此,解决方案是使用 FrameLayout

                 <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                <ImageView
                    android:id="@+id/iv"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical|center_horizontal"
                    android:src="@drawable/bike" >
                </ImageView>


                    <TextView
                        android:id="@+id/tv1"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical|center_horizontal"
                        android:gravity="center" >
                    </TextView>
                </FrameLayout>
于 2013-08-27T01:35:52.837 回答
1

尝试这个:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <RelativeLayout
        android:id="@+id/animal"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_below="@id/the_bar"
        android:layout_centerHorizontal="true"
        android:background="#FFFFFF"
        android:clickable="true"
        android:onClick="onAnimalClicked" >

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

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@+id/imageView"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Large Text"/>
    </RelativeLayout>
</LinearLayout>
于 2013-08-26T22:59:18.560 回答
0

尝试这个:

    <TextView
        android:id="@+id/animal_textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:drawableLeft="@drawable/animal_button"
        android:drawablePadding="5dp"
        android:gravity="center_vertical"
        android:text="Add to Animals"
        android:textColor="#258BE2"
        android:textStyle="bold" />

</RelativeLayout>

或者不是在左边插入一个drawable,你可以插入ImageView,它的右边对齐TextView的左边。

于 2013-08-27T05:28:50.160 回答