如何在ScrollView中将ImageView自动调整为屏幕高度为

时间:2016-07-30 19:14:54

标签: android android-layout

我使用ScrollView和多个视图,但我在顶部有一个ImageView。我需要的是将图像高度自动调整为屏幕高度。

我目前的布局是这样开始的:

 <LinearLayout
    android:orientation="vertical"
    android:id="@+id/layout_dashboard"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <include
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/toolbar_dashboard_layout" />
    <ScrollView
        android:scrollbars="none"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

感谢。

2 个答案:

答案 0 :(得分:0)

要确保ImageView调整其高度,请使用属性adjustViewBounds,例如:

<ImageView android:id="..." 
  android:adjustViewBounds="true" ... />

答案 1 :(得分:0)

您的屏幕尺寸无法在资源文件中识别,因为Android系统会获取这些文件,然后会将它们呈现到给定的设备屏幕。

因此,要使任何视图与屏幕大小成比例,我们需要以编程方式设置其参数。幸运的是,Android为我们提供了Display,其中包含有关我们显示的数据。使用此对象检索显示的高度,然后将View的高度设置为:

ImageView imageView = (ImageView) findViewById(R.id.image_view);
Display display = getWindowManager().getDefaultDisplay();

//We need to store the dimensions in a Point object.
Point point = new Point();
display.getSize(point);

//Now, set the width and height.
profileImage.getLayoutParams().width = point.x;
profileImage.getLayoutParams().height = point.y;