Version 1.4.0
Animated Image Changes
Rewritten implementation for animated images (GIFs and animated WebPs) with better performance, particularly when showing multiple GIFs.
This brings improved frame caching and memory management, better control for users of Fresco, new features and some GIF rendering issues have been fixed.
Other Updates in 1.4.0
- Support for
Bitmap.prepareToDraw
to upload bitmaps to the GPU ahead of time (as suggested by @
ChrisCraik) - enabled viaImagePipelineExperiments
- Fixed Shared Element Transitions. You have to manually call
draweeView.setLegacyVisibilityHandlingEnabled(true)
- Per-image custom drawable factory support
- Caching improvements
- You can now set a custom cache trim strategy for the image pipeline
- Added
BaseCacheEventListener
that implementsCacheEventListener
for convenience
- Easier synchronous requests with
DataSources#waitForFinalResult
- Fixed
IncreasingQualityDataSource
to keep the low res image if the high res request fails - Various other bug fixes and improvements: BitmapCounterProvider, Media Variations, Progressive JPEGs, EXIF parsing, ZoomableDraweeView touch logic, DraweeView attributes in Android Studio
Breaking Changes
AnimatedDrawable
The old animation code has been removed, including AbstractAnimatedDrawable
, AnimatedDrawable
, or AnimatedDrawableSupport
. Change your casts to AnimatedDrawable2
.
We also removed com.facebook.fresco:animated-base-support
since it is no longer needed.
DrawableFactory
Moved DrawableFactory to com.facebook.imagepipeline.drawable.DrawableFactory.
Please change your imports if you're using custom drawable factories.
Small cache threshold
Removed this option from ImagePipelineExperiments
as well as related code.
Internal changes
Added void onNewResult(T newResult, @Status int status)
to Consumer
interface.
Removed deprecated methods
ImagePipeline#getDataSourceSupplier(ImageRequest, Object, boolean)
EncodedImage#setEncodedCacheKey(CacheKey)
EncodedImage#getEncodedCacheKey()
GenericDraweeHierarchyBuilder#setActualImageMatrix()
GenericDraweeHierarchyBuilder#getActualImageMatrix()
Sample Apps (now with Kotlin!)
We've updated our Showcase sample app to include more samples and merged other sample apps into it.
There is also a new Kotlin sample app that shows how to use Fresco with Kotlin.