Android Glide占位符大小与不同图像大小相同

问题描述 投票:0回答:1

我花了一整天时间来解决这个问题:(

在我的Android应用程序中,我从服务器下载不同大小的图像。例如,图像A的尺寸为500x330,图像B的尺寸为500x700,依此类推。我还在图片下方添加了一些文字。我正在使用500x400大小的占位符图像。

我可以使用Glide加载图像并显示占位符:

XML:

<android.support.v7.widget.AppCompatImageView
        android:id="@+id/myImage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="fitXY" />

科特林:

GlideApp.with(myImage.context)
            .load(url)
            .skipMemoryCache(false)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .into(myImage)

问题:

在加载图像时,占位符显示为400高度。完成加载后,用户将看到更改高度从400到700。然后用户还会看到图像下方的文字向上或向下跳跃取决于图像大小:(

题:

如何在我想要在UI上显示的每个加载图像缩放或保持占位符的大小相同。这样在加载后UI不会改变?

注意:我不想像我的layout_height =“100dp”那样硬编码静态图像的高度。它们应保持相同的尺寸和无线电。

如果Glide不能那样做。你们还有其他建议吗?

非常感谢。

android imageview android-glide
1个回答
0
投票

不知道这个问题是否仍然有效。如果你将fitCenter()设置为Glide,我希望它会对你有所帮助。这将使图像适合占位符而不更改尺寸。 Buuut ....如果照片没有像占位符图像那样的确切宽高比,你会看到会有一些空白区域。

如果它不能正常工作,您还可以尝试通过设置占位符图像的宽度和高度来覆盖整个imageView的宽度和高度。

.override(w, h) // set exact size
.fitCenter() // keep memory usage low by fitting into (w x h) [optional]

哪里

w = placeholderDrawable width
h = placeholderDrawable height

我真的希望这会有所帮助。

更多细节here

© www.soinside.com 2019 - 2024. All rights reserved.