使用Glide和FirebaseUI加载图像不能与BaseAdapter一起使用

时间:2017-08-19 22:59:10

标签: android firebase android-glide firebaseui

我试图通过使用' com.firebaseui:firebase-ui-storage:0.6.0&中提供的Glide方法扩展BaseAdapter,在ListView中加载ProfileImages(我知道它过时了) #39; 包。

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

这是适配器的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 {}部分能够覆盖一些图像,但不能覆盖所有图像。因此,我得到了INCORRECT结果。

观察:但是如果我使用这一行代替Glide代码行,那么我得到了CORRECT结果。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

基本上如果你使用Glide给ImageView充气,那么你也必须使用Glide来清除它。我不得不在else {}

中添加一行
else {
    Glide.clear(profileImage_IV);
    viewHolder.profileImage_IV.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.no_image));
}