【问题标题】:Loading Images with Glide and FirebaseUI not working with BaseAdapter使用 Glide 和 FirebaseUI 加载图像不适用于 BaseAdapter
【发布时间】:2018-01-28 08:11:02
【问题描述】:

我正在尝试通过使用 'com.firebaseui:firebase-ui-storage:0.6.0' 中提供的 Glide 方法扩展 BaseAdapter 来在 ListView 中加载 ProfileImages(我知道它已过时)包。

参考:https://firebase.google.com/docs/storage/android/download-files#downloading_images_with_firebaseui

这里是Adapter的getView()方法

@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
...
if (tempProfile != null) {
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReferenceFromUrl("path_to_image");

    **** Problem ****
    Glide.with(context /* context */)
            .using(new FirebaseImageLoader())
            .load(storageRef)
            .into(viewHolder.profileImage_IV);
    **** See alternate line of code ****
}
else {
  viewHolder.profileImage_IV.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.no_image));
}

****问题****:代码的滑行在所有行的 ImageView 中膨胀图像(很多不必要的行被图像膨胀)。 else{} 部分能够覆盖一些图像,但不能覆盖所有图像。因此,我得到了错误的结果。

观察:但不是 Glide 代码行,如果我使用这行代码,我会得到正确的结果。

viewHolder.profileImage_IV.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.accept));

谢谢!

【问题讨论】:

  • 什么是 eventContentRef?
  • 抱歉打错了。修好了!
  • 您是否在不同的列表位置获得了重复的图像?
  • 是的。正是我遇到的问题。
  • 并且storage ref会根据列表位置变化对吧?

标签: android firebase android-glide firebaseui


【解决方案1】:

我从https://stackoverflow.com/a/35114351/2937847 找到了答案。

基本上,如果您使用 Glide 为 ImageView 充气,那么您也必须使用 Glide 清除它。我只需要在 else 中添加 1 行{}

else {
    Glide.clear(profileImage_IV);
    viewHolder.profileImage_IV.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.no_image));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-06
    • 2018-10-26
    • 2016-06-23
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 2018-03-31
    • 2020-06-28
    相关资源
    最近更新 更多