- Fix: Correct problems with adapter-based recycling of drawables and interop with external libraries like RoundImageView.
- Specifying transformations in a request now accepts a list.
- Fix: Correctly handle
nullvalues from content providers. - Fix: Ensure contact photo thumbnail Uris are loaded with the correct request handler.
- Fix: Eliminate potential (albeit temporary) memory leak on pre-5.0 Android due to message pooling.
- Fix: Prevent placeholder image aspect ratio from changing while crossfading in image.
- Update to OkHttp 2.x's native API. If you are using OkHttp you must use version 2.0 or newer (the latest is 2.2 at time of writing) and you no longer need to use the
okhttp-urlconnectionshim. - Memory and Network policy API controls reading and storing bitmaps in memory and/or disk cache.
- Allow returning
InputStreamfromRequestHandler. - Allow removing items from memory cache using
clearKeyUri. fetch()can now accept aCallback.- Provide option with
onlyScaleDownto perform scaling only if the source bitmap is larger than the target. - Fix: Potential workaround handling improperly cached responses with unknown
Content-Length. (#632) - Fix: Ensure resized images completely fill ImageView (#769)
- Fix: Properly report correct exception when disk cache fails to load (504 gateway error).
- Fix: Resize now properly maintains aspect ratio if width or height is 0.
- Fix: Update debug indicators for the visually impaired (blue color instead of yellow for disk cache hits).
- New
RequestHandlerbeta API adds support for custom bitmap loading. priorityAPI for setting request priority. By defaultfetch()requests are set toPriority.LOW.- Requests can now be grouped with a
tagand can be batch paused, resumed, or canceled. - Resizing with either height or width of 0 will now maintain aspect ratio.
Picasso.setSingletonInstanceallows setting the global Picasso instance returned fromPicasso.with.- Request
stableKeyprovides an override value for the URI or resource ID when caching. - Fix: Properly calculate sample size for requests with
centerInside(). - Fix:
ConcurrentModificationExceptioncould occur in theDispatcherwhen submitting a request. - Fix: Correctly log when a request was canceled due to garbage collection.
- Fix: Provide correct target for
RemoteViewsrequests. - Fix: Propagate exceptions thrown from custom transformations.
- Fix: Invoking
shutdown()now will close the disk cache.
- Fix: Revert fail fast when missing internet permission.
- Fix: Account for null paths when naming a Request.
- Add API to allow canceling of remote views requests.
- Fix: Crash when attempting to swap dimension for EXIF transformation.
- Fix: Properly honor alpha value in PicassoDrawable.
- Fix: Use
getWidth()andgetHeight()instead ofgetMeasuredWidth()andgetMeasuredHeight()duringfit().
- Fix: Correctly invalidate PicassoDrawable for GB.
- Fix: Attempt to decode responses with missing
Content-Lengthheader. - Fix: Prevent race condition to initial
with()call.
- Fix: Deprecated Response constructor used 0 for content-length.
- Requests will now be automatically replayed if they failed due to network errors.
- Add API for logging. This is mostly useful for debugging Picasso itself.
- Add API for loading images into remote views (notifications and widgets).
- Stats now provide download statistics.
- Updated to use Pollexor 2.0.
- When using OkHttp version 1.6 or newer (including 2.0+) is now required.
MediaStoreBitmapHunternow properly returns video thumbnails if requested URI is for a video.- All API calls now properly validate the current thread they must run on.
- Performance: Various optimizations for reducing object allocations.
- Fix: Stats were incorrectly invoked even if the bitmap failed to decode.
- Fix: Handle
nullintent case in network broadcast receiver extras. - Fix:
Targetnow correctly invokes bitmap failed if an error drawable or resource is supplied.
- Add support decoding various contact photo URIs.
- Add support for loading
android.resourceURIs (e.g. load assets from other packages). - Add support for MICRO/MINI thumbnails for media images.
- Add API to supply custom
Bitmap.Configfor decoding. - Performance: Reduce GC by reusing same
StringBuilderinstance on main thread for key creation. - Performance: Reduce default buffer allocation to 4k for
MarkableInputStream. - Fix: Detect and decode WebP streams from byte array.
- Fix: Non-200 HTTP responses will now display error drawable if supplied.
- Fix: All exceptions during decode will now dispatch a failure.
- Fix: Catch
OutOfMemoryerrors, dispatch a failure, and output stats in logcat. - Fix:
fit()now handles cases where either width or height was not zero. - Fix: Prevent crash from
nullintent onNetworkBroadcastReceiver. - Fix: Honor exif orientation when no custom transformations supplied.
- Fix: Exceptions during transformations propagate to the main thread.
- Fix: Correct skia decoding problem during underflow.
- Fix: Placeholder uses full bounds.
Targetnow has callback for applying placeholder. This makes it symmetric with image views when usinginto().- Fix: Another work around for Android's header decoding algorthm readin more than 4K of image data when decoding bounds.
- Fix: Ensure default network-based executor is unregistered when instance is shut down.
- Fix: Ensure connection is always closed for non-2xx response codes.
Duplicate of v2.0.2. Do not use.
- Fix: Additional work around for Android's header decoding algorithm reading more than 4K of image data when decoding bounds.
- Enable filtered bitmaps for higher transform quality.
- Fix: Using callbacks with
into()onfit()requests are now always invoked. - Fix: Ensure final frame of cross-fade between place holder and image renders correctly.
- Fix: Work around Android's behavior of reading more than 1K of image header data when decoding bounds for some images.
- New architecture distances Picasso further from the main thread using a dedicated dispatcher thread to manage requests.
- Request merging. Two requests on the same key will be combined and the result will be delivered to both at the same time.
fetch()requests are now properly wired up to be used as "warm up the cache" type of requests without a target.fit()will now automatically wait for the view to be measured before executing the request.shutdown()API added. Clears the memory cache and stops all threads. Submitting new requests will cause a crash aftershutdown()has been called.- Batch completed requests to the main thread to reduce main thread re-layout/draw calls.
- Variable thread count depending on network connectivity. The faster the network the more threads and vice versa.
- Ability to specify a callback with
ImageViewrequests. - Picasso will now decode the bounds of the target bitmap over the network. This helps avoid decoding 2000x2000 images meant for 100x100 views.
- Support loading asset URIs in the form
file:///android_asset/.... - BETA: Ability to rewrite requests on the fly. This is useful if you want to add custom logic for wiring up requests differently.
- Fix: Ensure old requests for targets are cancelled when using a
nullimage.
loadmethod can now take aUri.- Support loading contact photos given a contact
Uri. - Add
centerInside()image transformation. - Fix: Prevent network stream decodes from blocking each other.
- Auto-scale disk cache based on file system size.
placeholdernow acceptsnullfor clearing an existing image when used in an adapter and without an explicit placeholder image.- New global failure listener for reporting load errors to a remote analytics or crash service.
- Fix: Ensure disk cache folder is created before initialization.
- Fix: Only use the built-in disk cache on API 14+ (but you're all using OkHttp anyways, right?).
- Fix: Properly set priority for download threads.
- Fix: Ensure stats thread is always initialized.
Initial release.