Я использую библиотеку fersco для загрузки локального изображения. Первоначально я показываю изображение-заполнитель в каждом элементе. После загрузки изображения я сохраняю это изображение по локальному пути, а затем загружаю изображение с помощью функции setImageUri. Если я прокручиваю быстро во время загрузки изображения, оно отображает другое изображение и снова появляется некоторое время, продолжая меняться, если я прекращаю прокрутку.
Мой SimpleDraweeView:
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/fake_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center|center_horizontal|center_vertical"
android:adjustViewBounds="true"
android:contentDescription="@string/app_name"
android:scaleType="centerInside" />
Мой код адаптера:
GenericDraweeHierarchy hierarchy = setHierarchyForDraweeView(mImageView, 300);
иерархия.setFailureImage(mContext.getResources().getDrawable(R.drawable.broken_image_black)); mSimpleDraweeView.setImageURI(Uri.fromFile(новый файл(mPath/локальный путь/)));
Функция SetHierarchyForDraweeView:
private GenericDraweeHierarchy setHierarchyForDraweeView(SimpleDraweeView draweeView, int duration) {
if (draweeView != null) {
if (draweeView.getHierarchy() == null) {
GenericDraweeHierarchyBuilder builder = new GenericDraweeHierarchyBuilder(mContext.getResources());
GenericDraweeHierarchy hierarchy = builder
.setFadeDuration(duration)
.setPlaceholderImage(new AsyncColorDrawable(mContext.getResources()))
.setFailureImage(mContext.getResources().getDrawable(R.drawable.broken_image_black))
.build();
draweeView.setHierarchy(hierarchy);
} else {
GenericDraweeHierarchy hierarchy = draweeView.getHierarchy();
hierarchy.setFadeDuration(duration);
return hierarchy;
}
}
return null;
}
Класс AsyncColorDrawable:
private class AsyncColorDrawable extends ColorDrawable {
public AsyncColorDrawable(Resources res) {
super(res.getColor(R.color.RED));
}
}
Я делаю что-то не так?