如何正确地将图像放在具有指定高度的ImageView顶部?

时间:2016-06-21 09:38:18

标签: java android android-layout android-imageview android-image

我绝对是Android开发的初学者,我在将图像定位到布局的 ImageView 元素时遇到了一些问题。所以我有以下情况,我有片段布局:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Dummy content. -->
    <LinearLayout android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="0dp">

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:scaleType="fitCenter"
            android:layout_height="350dp"
            android:src="@drawable/carbonara"/>
            <!--android:background="@drawable/carbonara" />-->

        <TextView android:id="@android:id/text1"
            style="?android:textAppearanceLarge"
            android:textStyle="bold"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="16dp" />

    </LinearLayout>

</ScrollView>

因此,正如您在前面的代码段中看到的那样,我将背景图像设置为 ImageView ,其中高度为350dp 已设置。

问题是图像高度小于350dp,这就是我所获得的:

enter image description here

正如你在前面的截图中看到的,我得到的是350dp ImageView (以蓝色突出显示),图像在其中垂直居中设置。我不希望设置的图像垂直居中,但我希望它从 ImageView 的顶部开始。

如何实现此行为?我错过了什么?

我试图改变:

android:src="@drawable/carbonara"/>

使用:

android:background="@drawable/carbonara" />

并以这种方式填充所有 ImageView 空间,但这样图像可能会变形,所以我认为这不是一个好的解决方案。

1 个答案:

答案 0 :(得分:2)

尝试更改布局并再次测试。

android:scaleType="fitCenter"

android:scaleType="fitStart"

在此处查看完整的docs