我试图通过使用' 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));
谢谢!
答案 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));
}