覆盖TextView和ImageView的宽度相等

时间:2014-05-14 14:42:38

标签: android android-layout android-xml

我有一个覆盖我的ImageView(图像)的TextView(文本)。我的问题是它们没有相同的宽度。换句话说 - 我希望红色区域显示为白色:

enter image description here

到目前为止,这是我的布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FFFFFF" >

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

     <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Title"
        android:padding="10dp" 
        android:textSize="25sp"
        android:gravity="center"
        android:background="#9988FF88"
        android:textColor="#000000"/>

</RelativeLayout>

我对android很新,并尝试在textview中添加不同的标签,如android:layout_alignLeft =“@ id / image”,无法修复它,并尝试配置layout_width设置,但这没有帮助我也是。另外这个solution无法解决它(我想这是因为我在我的ImageView中的android:layout_width =“match_parent”)。解决方案是将这些行添加到TextView:

android:layout_alignLeft="@+id/image"
android:layout_toRightOf="@+id/image"

我也在寻找程序化解决方案,但也无法修复它:

image = (ImageView) findViewById(R.id.image);
text = (TextView) findViewById(R.id.text);
text.setWidth(image.getWidth());

任何想法如何摆脱我的红色区域?每个想法都将受到赞赏,我会很高兴xml解决方案或程序化解决方案!在此先感谢:)

修改

我应该指定ImageView中的图像确实被替换了很多,这样一些图像的宽度就会填满整个水平屏幕。因此,在某些图像中,左侧和右侧应有一个边距,但在其他图像上则不会(换句话说 - 标题应始终与图像一样大)。 (顺便说一下:谢谢你的快速反应!)

更新

我解决了这个问题,只是给标题添加了白色背景颜色。

4 个答案:

答案 0 :(得分:1)

试试这个

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_margin="26dp"
    android:background="#FFFFFF" >

   <ImageView
    android:id="@+id/image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY" />

   <TextView
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Title"
    android:padding="10dp" 
    android:textSize="25sp"
    android:gravity="center"
    android:background="#9988FF88"
    android:textColor="#000000"/>

  </RelativeLayout>

答案 1 :(得分:1)

我能想到的最佳解决方案是:

  • 从图像中剪切出白色的bourders(然后在ImageView中设置一些边距,以模拟边框)

然后,改变您的布局:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    >
    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
    />
     <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Title"
        android:padding="10dp"
        android:textSize="25sp"
        android:gravity="center"
        android:background="#9988FF88"
        android:textColor="#000000"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
    />
</RelativeLayout>

答案 2 :(得分:0)

您的imageview设置为match_parent但imageview周围仍有白色区域。你确定你的图像周围没有白色区域吗?

另外,请尝试使用fill_parent而不是match_parent。

答案 3 :(得分:0)

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FFFFFF"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"/>



            <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="8">
            <ImageView
                android:id="@+id/image"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
            <TextView
                android:id="@+id/text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Title"
                <!--android:padding="10dp" -->
                android:textSize="25sp"
                android:gravity="center"
                android:background="#9988FF88"
                android:textColor="#000000"/>
            </RelativeLayout>



            <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"/>
</LinearLayout>