Odtwarzam wiele obrazów sekwencyjnie na tym samym SimpleDraweeView
. Problem polega na tym, że po przesłaniu nowego żądania imageURI, SimpleDrweeView
usunie bieżący wyświetlany obraz i zastąpi go nic, dopóki nie zostanie pobrany URI. Więc pozostawi luki w sekwencji gry (możesz pomyśleć o tym, co próbuję zrobić, to animacja animowana z wykorzystaniem lokalnych zdjęć). To, co chciałbym, aby SimpleDrweeView pozostawił bieżący obraz, dopóki nie zostanie pobrany nowy, a następnie po prostu go zamieni, kiedy będzie gotowy.Fresco: Użyj bieżącego obrazu wyświetlonego w Drawie jako symbolu zastępczego dla następnego żądania.
Próbowałem użyć schematu o niskiej rozdzielczości/wysokiej rozdzielczości z biletu this, aby umieścić stare uri jako symbol zastępczy, ale to nie zadziałało (miało taki sam efekt jak poprzednio).
To co mam teraz:
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(uri /* local image */);
A to, co starałem tak daleko (nie działa):
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);
Dziękuję bardzo za to. Zamierzam spróbować w przyszłym tygodniu i dam ci znać o wynikach. – Jimmy
@plamenko dlaczego zdecydowałeś się ukryć istniejący obraz po załadowaniu nowego? pod warunkiem, że wybór ukryje lub okaże się znacznie bardziej przydatny. –
@AntonMalyshev, to nie jest tak, że postanowiliśmy ukryć istniejący obraz jako taki. Jest to raczej konsekwencja projektu Szuflady. Rysujący uzyskuje obrazy do wyświetlenia z DataSource (który z kolei pochodzi od Dostawcy). Szuflada ma tylko jednego dostawcę, co znacznie upraszcza projektowanie, ponieważ logika muxingu jest tam zamknięta zamiast w sterowniku Drawee. Czystym sposobem na osiągnięcie tej funkcjonalności z firmą Drawee jest posiadanie dostawcy, który to robi. –
plamenko