3

在博客设计支持库:折叠工具栏布局博客文章中,有一个具有良好视差效果的标题图像:

应用截图

GitHub 的一个简单测试项目中,我试图达到类似的效果 - 但由于某种原因,图像被挤压:

应用截图

activity_main.xml中,我尝试了所有可能的值,scaleType但图像仍然失真:

        <ImageView
            android:id="@+id/header_image_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/header"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax" />

请问我在这里缺少什么?

更新:

我已尝试更改match_parent为 Apurva 建议的(感谢 +1):

        <ImageView
            android:id="@+id/header_image_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/header2"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax" />

但这无济于事 - 标题图像被压扁:

应用截图 1

应用截图 2

4

2 回答 2

7

默认情况下,背景会拉伸以适应。你应该android:srcandroid:background你的ImageView.

<ImageView
    android:id="@+id/header_image_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/header2"
    android:scaleType="centerCrop"
    app:layout_collapseMode="parallax" />
于 2015-08-04T20:04:38.023 回答
2

您在教程作者使用时提到过SquareImageView吗?

他重写了onMeasure方法:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    int width = getMeasuredWidth();
    setMeasuredDimension(width, width);
}

在这里实现

于 2015-08-04T19:27:56.473 回答