Я воспроизвожу несколько изображений последовательно на одном и том же SimpleDraweeView
, проблема в том, что при отправке нового запроса изображенияURI SimpleDrweeView
удалит текущее отображаемое изображение и заменит его на ничего, пока URI не будет загружен. Таким образом, он оставит пробелы в последовательности воспроизведения (вы могли бы подумать, что я пытаюсь сделать, это мультяшная анимация с использованием местных фотографий). Что бы я хотел, чтобы SimpleDrweeView оставил текущее изображение до тех пор, пока новый не будет загружен, а затем просто поменяйте его, когда он будет готов.Fresco: Использовать текущее изображение, отображаемое в Drawee, в качестве заполнителя для следующего запроса
Я пробовал использовать схему с низким разрешением/высоким разрешением от this билет, чтобы поместить старый uri в качестве заполнителя, но это не сработало (имело такой же эффект, как и раньше).
Это то, что я сейчас:
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(uri /* local image */);
И это то, что я пытался до сих пор (не работает):
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
Uri lowResUri, highResUri;
DraweeController controller = Fresco.newDraweeControllerBuilder().setTapToRetryEnabled(true)
.setLowResImageRequest(ImageRequest.fromUri((Uri) draweeView.getTag())) /*naive way to test the low/high res feature*/
.setImageRequest(ImageRequest.fromUri(uri))
.setOldController(draweeView.getController())
.build();
draweeView.setTag(uri);
draweeView.setController(controller);
Большое спасибо за это. Я собираюсь дать это попробовать на следующей неделе и сообщит вам о результатах. – Jimmy
@plamenko Почему вы решили скрыть существующее изображение при загрузке нового? предоставление выбора скрыть это или нет, кажется, гораздо более полезно. –
@ Антон Малышев, мы не решили скрыть существующее изображение как таковое. Это скорее следствие дизайна чертежа. Drawee получает изображения для отображения из DataSource (который, в свою очередь, поступает от поставщика). У Drawee есть только один поставщик, который значительно упрощает дизайн, поскольку логика мультиплексирования инкапсулируется там, а не в контроллере Drawee. Чистым способом достижения этой функции с помощью Drawee является наличие поставщика, который это делает. –
plamenko