通过Glide加载占位符图像后图像显得拉长?

And*_*ins 4 android android-glide

我正在尝试使用Glide在Listview中加载一些图像.如果我在加载图像时不使用占位符,则图像会正确加载.但是,当我尝试设置占位符时,我通过网络加载的图像显示为拉伸.这仅在使用占位符图像的情况下发生.如果我要离开屏幕并返回(这样就不会加载占位符图像),那么图像就会正确显示.

这是我简单的Glide实现:

Glide.with(context)
                .load(url)
                .placeholder(R.drawable.empty_logo)
                .error(R.drawable.error)
                .into(imageView);
Run Code Online (Sandbox Code Playgroud)

Bha*_*sri 9

我知道我很晚才回答,但这就是它对我的帮助:

Glide.with(context).load(url).placeholder(R.drawable.empty_logo).dontAnimate().into(imageView);
Run Code Online (Sandbox Code Playgroud)

使用dontAnimate(),它对我有用.希望它有帮助:)


Wes*_*ess 5

我遇到了同样的问题,如果占位符小于所获取的图像,则图像在加载到 ImageView 时将被拉伸。我尝试了我能想到的一切,以下内容对我来说非常有效:

我在 ImageView 上设置了以下属性:

<ImageView
    android:id="@+id/my_image_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"/>
Run Code Online (Sandbox Code Playgroud)

并按以下方式使用 Glide:

Glide.with(myImageView.getContext())
            .load(imageUrl)
            .placeholder(R.drawable.placeholder)
            .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
            .into(myImageView);
Run Code Online (Sandbox Code Playgroud)

这里要注意的关键是将 ImageView 上的adjustmentViewBounds属性设置为 true,最重要的是.override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) - 这将强制 Glide 使用图像的原始大小。

您还可以在.override()中指定像素大小,但请确保为 ImageView 指定正确的 ScaleType,否则它也会拉伸图像。