使Imageview假定其父级允许的最大宽度

时间:2017-08-28 17:11:36

标签: android android-layout

我想要一个Imageview展开并假设最大宽度相对于父视图组边距。但是,当动态隐藏ImageView时,父级的宽度必须像wrap_content一样。 请考虑以下布局:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingLeft="8dp"
    android:paddingRight="8dp">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:src="@drawable/strasse_hintergrund"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Short Text"/>
</LinearLayout>

以下图片显示了布局的样子,文本视图中包含短文本和长文本:

Layout with short text Layout with long text

我需要ImageView始终具有假设宽度,如第二个版本(使用长文本)。

实现这一目标的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

试试这个:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:adjustViewBounds="true"
    android:scaleType="fitXY"
    android:src="@drawable/strasse_hintergrund"/>

并且可能会改变:

    android:layout_width="match_parent" 

    android:layout_width="wrap_content" 

编辑:

这是我的代码:

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




    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="19dp"
        android:background="@color/dark"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        android:layout_weight="0.02">

        <TextView
            android:id="@+id/textView2"

            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="7pt"
            android:textColor="@color/white"/>

    </android.support.v7.widget.Toolbar>

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

    <TextView
        android:id="@+id/textView"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="10pt"/>

</LinearLayout>

结果:

enter image description here

答案 1 :(得分:0)

  1. TextViewImageView放在不同的LinearLayout中,并将它们放在第三个LinearLayout OR
  2. 使用match_parent代替wrap_content代替TextView宽度

答案 2 :(得分:0)

您可以为Imageview

设置此android:scaleType="fitXY"属性
<ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:src="@drawable/your_image"/>