在LinearLayout中将TextView宽度设置为等于ImageView宽度

时间:2015-12-27 19:34:20

标签: android xml android-layout layout android-linearlayout

我收到了以下代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical"
android:weightSum="1">

<ImageView
    android:id="@+id/slider_image"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.6"/>

<TextView
    style="@style/DefaultText"
    android:id="@+id/description"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.4"/>

(因为我还不知道图像的大小,这就是为什么我必须通过layout_weight设置ImageView的大小。)
代码段会导致:

|-------------------|
|     |       |     |
|     | IMAGE |     |
|     |       |     |
|-------------------|
|                   |
|   <<<  TEXT  >>>  |
|                   |
|-------------------|

我想得到什么:

|-------------------|
|     |       |     |
|     | IMAGE |     |
|     |       |     |
|-------------------|
|     |       |     |
|     | TEXT  |     |
|     |       |     |
|-------------------|

我不确定它是否可以在纯XML中使用,或者我是否必须使用Java。

无论如何 - 我无法使用RelativeLayout的layout_alignLeftlayout_alignRight,因为我必须先设置ImageView高度。
任何建议将不胜感激!

3 个答案:

答案 0 :(得分:0)

您可以将RelativeLayout用作父级,并为文本视图添加以下行

    android:layout_below="@+id/icon"
    android:layout_alignLeft="@+id/icon"
    android:layout_alignRight="@+id/icon"

答案 1 :(得分:0)

我从您的问题中了解到,您需要ImageView&amp; TextView宽度相同。

有两种方法可以实现这一目标。

  1. 通过XML :在ImageViewscaleType属性的XML文件中,

    android:scaleType="fitXY"

    这将确保您的图片适合您的ImageView&amp; ImageView宽度不会有所不同。

  2. 通过JAVA :将图片设置为ImageView后获取ImageView的尺寸,并将相同的尺寸设置为TextView

答案 2 :(得分:0)

试试这个,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:orientation="vertical"
    android:weightSum="1">

    <ImageView
        android:id="@+id/slider_image"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:src="@mipmap/ic_launcher"
        android:layout_weight="0.6" />

    <TextView
        android:id="@+id/description"
        android:layout_width="match_parent"
        android:gravity="center"
        android:text="Textview"
        android:layout_height="0dp"
        android:layout_weight="0.4" />
</LinearLayout>