【问题标题】:Android Glide placeholder size the same with different image sizeAndroid Glide 占位符大小相同,图片大小不同
【发布时间】:2019-03-24 22:35:10
【问题描述】:

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

在我的 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】:

    不知道这个问题是否仍然存在。如果您将 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      • 2023-04-11
      • 2015-09-19
      • 2016-09-03
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      相关资源
      最近更新 更多