Releases: facebook/fresco
Version 1.8.1
Version 1.8.1 is a bug-fix release following the main 1.8.0 release. In particular, it addresses the following issues:
Version 1.8.0
Version 1.8.0 contains several improvements and bug fixes, including:
- Fixed animated image rendering for dynamic frame dimensions (086fd1d)
- Fixed downsampling for PNGs (e2c464e)
- Fixed WebPs with alpha decoding on API <= 17 devices (705b774)
- Supporting wide color gamut decoding on Android 8+ (4a64df0)
- Fixed handling pin bitmap errors (a08f9e7, f5eb85e)
Breaking changes
Switched to using SoLoader (aef3790)
SoLoader has been released for a while now, and updated just last week. We've made the decision to add a hard dependency on it and make SoLoader the one and only native code loader that we use in Fresco. API-wise, this means SoLoaderShim
is gone. If you were using some other native loading library (e.g. ReLinker), you can either:
- keep both and just delete your
SoLoaderShim
implementation, but this will make your APK size bigger - switch to SoLoader for the rest of your app as well and remove the other dependency
Thanks
Thanks to the following for their pull requests which are included in this release: @Alonexx, @8enet, @zjupure, @bschnack
Version 1.7.1
This is a bugfix release. For all the relevant changes that made it into this release, please see v1.7.0.
Version 1.7.0
Do Not Use: this release is broken (see #1991)
Version 1.7.0 contains several improvements and bug fixes, including:
- Switched to OkHttp 3.8.0 (bd9dd82)
- Region decoding (bd249fa)
- Native circular rounding (705379e)
- Added RetainingDataSourceSupplier (ff3bed9)
- Support inverted rotation orientations (d25944a)
Thanks
Many thanks to the following people who sent pull requests that are included with this release!
Version 1.5.0
Version 1.5.0 contains several improvements and bug fixes, including:
- Better control of bitmap GPU uploads
- Add support for fitBottomStart scaleType
- Support for local content video URI thumbnails
- Bug fixes
Sample Apps
The following improvements were made to the Fresco Showcase app:
- Added image resizing example
- Support loading of SVG files not starting with "<svg" (in the Showcase SVG decoder example)
Breaking changes
- MediaIdExtractor was removed
Thanks
Thanks to the following for their pull requests which are included in this release: @a-d-collins, @JuniperPhoton, @DkBai, @IguteChung
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.
Version 1.3.0
Version 1.3.0 is mainly a bugfix release.
- Showcase application improved and new examples added
- New onUltimateProducerReached() callback method added to ProducerListener.
- It's now possible to load resources using a qualifying resource URI. This allows for loading resources that are not part of the application's main package.
Breaking Changes
PooledByteBuffer and PooledByteBufferInputStream
These two classes have moved package from com.facebook.imagepipeline.memory
to com.facebook.imagepipeline.memory
. If you directly make use of either class, simply update your imports.
ProducerListener
The ProducerListener
interface has a new callback: onUltimateProducerReached()
. This identifies the producer which was ultimately responsible for producing the result which was passed back, so can give an idea about how many requests are satisfied from caches.
If you have an implementation of ProducerListener
or RequestListener
you will need to add an implementation of this method.
Thanks
Thanks to the following for their pull requests which are included in this release: @voiddog, @nesterov-n, @paour and @josephlam1984.
Version 1.2.0
Version 1.2.0 is mainly a bugfix release.
- A MediaIdExtractor interface has been added to benefit from media variations without explicitly adding media IDs to every image request. This is currently experimental though and not recommended unless you're careful and confident in the URLs your app uses.
- Added option to ImageRequestBuilder for setting a custom image decoder for that particular request.
- libfb_jpegturbo is now linked as a shared library.
- Updated to OkHttp v3.6.0.
- Updated libpng to v1.6.26.
Thanks
Thanks to the following for their pull requests which are included in this release: @paour, @desmond1121, @caojianfeng, @FtheGFW, @eldk, @lucas34, @angarron
Version 1.1.0
Version 1.1.0 is mainly a bugfix release.
There is one breaking change: MemoryUiTrimmable
was removed. See d41bf01 for details.
All commits going into this release: v1.0.1...v1.1.0
Thanks
Thanks to the following for their pull requests which are included in this release: @lucas34
Version 1.0.1
Version 1.0.1 is mainly a bugfix release:
- Fixed an issue where URIs with spaces could not be parsed correctly.
- Updated libwebp to 0.5.2 and fixed some WebP issues.
- Downsampling ratio calculations are now correct.
- The image pipeline now uses the correct producer sequence for local files.
- SimpleDraweeSpanTextView now resizes itself correctly.
New Features
You can use UriUtil.getUriForFile(File)
and ImageRequest.fromFile(File)
to create URIs and ImageRequest
s for files.
Thanks
Thanks to the following for their pull requests which are included in this release:
@angarron, @korDen, @sachins, @pizza, @JoelMarcey