Android Picasso

From bibbleWiki
Revision as of 03:26, 25 January 2021 by Iwiseman (talk | contribs) (File Types)
Jump to navigation Jump to search

Introduction

Picasso is a library for managing images on Android and is very simple to use

Picasso.with(getContext()).load(sampleURI).into(imageView)

Picasso Provides

  • Flexible Source Locations
  • Caching
  • Image Trnasformations
  • Error Handling
  • Logging
  • Request Management

To add it to our projects we simply add it to the gradle. At the time this was

    implementation 'com.squareup.picasso:picasso:2.71828'


Resources for this can be found at
https://github.com/alex-wolf-ps/android-picasso

Comparison

Here are some comparisons on the competition at the time, Glide and Fresco. I guess I am more interested in the items to compare as this points to the problem people are trying to solve.

Criterion
Size 121 Kb/td>

440 Kb 500 kb
Convenience of use high high middle
Web Download Speed high slightly lower due to lengthy caching processing high
Cache Download Speed average high high
Built-in Transformation Features basic set of operations basic set plus rounding wide range of transformation capabilities, but with limitations
Additional tools Absent. Loading a frame from video as a picture and GIF, using any type of model, a flexible API with the ability to connect any network stack. Saving images not in Java Heap, but in ashmem heap, the ability to crop images around any point, resize JPEG using native resources, support for Progressive JPEG images.

Loading Images

Sources

Picasso supports loading images from either

  • String, "https:://www.bibble.co.nz/myimage.png
  • Resource ID, images stored in the app drawable e.g. R.drawable.myimage
  • URI, Maybe an image from the phone using an intent
  • File, a Android File Object

File Types

Picasso supports many file types include JPEG, PNG and SVG. JPEG and PNG are raster images and SVGs are vector Images. Vector images are stored as a series of paths curves and points. Where as raster images of pixels which makes them less unable to scale