Glide有时会占用整个布局

时间:2016-04-27 16:37:08

标签: android imageview android-glide scaletype

有时候Glide的行为是不可取的,有时使用应用程序时ImageView看起来像这样: screenshot

回到(到父活动)并在不重新启动应用程序的情况下回到相同的电影结果,它会显示已修复(假设的外观),如下所示:

right ImageView

我不知道为什么会出现这种行为,这里是图片视图的xml代码:

<ImageView
    android:elevation="4dp"
    android:src="@drawable/poster_sample"
    android:id="@+id/poster_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="24dp"
    android:layout_marginStart="14dp"
    android:scaleType="centerCrop"/>

滑翔代码:

Glide
    .with(getContext())
    .load(mMovieValues.get(MovieContract.MovieEntry.COL_POSTER_URL))
    .centerCrop()
    .into(mPoster);

问题出在哪里?以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您应该为ImageView提供固定的高度和宽度,而无需使用centerCrop

<ImageView
    android:elevation="4dp"
    android:src="@drawable/poster_sample"
    android:id="@+id/poster_image"
    android:layout_width="250dp"
    android:layout_height="150dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="24dp"
    android:layout_marginStart="14dp"/>

并从此处删除CenterCrop

Glide
.with(getContext())
.load(mMovieValues.get(MovieContract.MovieEntry.COL_POSTER_URL))
.into(mPoster);