使用Glide和占位符时的像素化图像

时间:2018-04-26 10:59:00

标签: android imageview android-glide

我使用Glide将图像文件加载到ImageView中,如下所示:

GlideApp.with(this)
        .load(imageURL)
        .placeholder(R.drawable.placeholder)
        .into(mImageView);

加载的图像和占位符具有相同的分辨率(1920 * 1200)。但是如果加载的图像是纵向格式并且占位符是横向的,则加载的图像会被拉伸并像素化。这些是我在Logcat中获得的大小值:

mImageView.getWidth(): 870
mImageView.getHeight(): 1393
mImageView.getDrawable().getBounds().width(): **339**
mImageView.getDrawable().getBounds().height(): **543**

如您所见,可绘制位图的大小远小于图像视图的大小。

如果两者的方向相同,我的尺码相同,一切都很好。

我的问题是:
1.为什么会这样? 2.我该如何解决这个问题?

这是我的xml代码:

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="@+id/imageView"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/imageView" />


    <ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/textView"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

0 个答案:

没有答案