3

В статье блога блоге Design Support Library: Collapsing Toolbar Layout есть заголовок изображения с хорошим эффектом параллакса:Parallax эффект с рушится панель не работает, изображение в заголовке сплющенные

app screenshot

В a simple test project at GitHub я пытаюсь добиться подобного эффекта - но по какой-то причине изображение сплющенные:

app screenshot

В 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" /> 

Что я здесь отсутствует, пожалуйста?

UPDATE:

Я попытался изменить к 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" /> 

Но это не помогает - изображение заголовка сплющенные:

app screenshot 1

app screenshot 2

+2

Вы должны попробовать писать 'layout_height = wrap_content' в ImageView – Apurva

+1

К сожалению, это не помогло: https://github.com/afarber/android-newbie/blob/master/MyCoordinator/screenshot.png –

+0

У вас видно: https://github.com/chrisbanes/cheesesquare/blob/master/app/src/main/res/layout/activity_detail.xml и https://github.com/chrisbanes/cheesesquare/blob/master/app/ src/main/java/com/support/android/designlibdemo/CheeseDetailActivity.java –

ответ

7

По умолчанию фон будет растягиваться, чтобы соответствовать. Вы должны установить android:src, а не android: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" /> 
2

Вы упомянули, что в учебнике автор использует SquareImageView?

Он перекрытая onMeasure метод:

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

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

Класс реализован here

+0

Нет, я заменил 'SquareImageView' на' ImageView' в этом приложении (в [activity_detail.xml] (https://github.com/antoniolg /MaterializeYourApp/blob/master/app/src/main/res/layout/activity_detail.xml)), и он по-прежнему работает, и изображение заголовка не сжимается. В моем тестовом приложении это сплющено - и я не могу понять, почему. –