A powerful image downloading and caching library for Android

Related tags

Spring Boot picasso
Overview

Picasso

A powerful image downloading and caching library for Android

For more information please see the website

Download

Download the latest AAR from Maven Central or grab via Gradle:

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

or Maven:

<dependency>
  <groupId>com.squareup.picasso</groupId>
  <artifactId>picasso</artifactId>
  <version>2.71828</version>
</dependency>

Snapshots of the development version are available in Sonatype's snapshots repository.

ProGuard

If you are using ProGuard you might need to add OkHttp's rules: https://github.com/square/okhttp/#r8--proguard

License

Copyright 2013 Square, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Out of Memory - Nexus 5 - Android 4.4

    Out of Memory - Nexus 5 - Android 4.4

    I'm seeing a lot of these after moving through a FragmentStatePagerAdapter:

    Could there be a difference? I don't recall this in my Nexus 4 with JB 4.3. (Tho I will investigate). I'm posting this as a reference to see if I'm the only one. I am using code like this:

    Picasso.with(sContext).load(url).placeholder(R.drawable.mix_art_blank).into(mMixImageNormal, mBackgroundImageLoader);
    

    and the "target" (mBackgroundImageLoader) is this:

    private class BackgroundImageLoader implements Callback {
            @Override
            public void onSuccess() {
                update();
            }
            @Override
            public void onError() {
            }
        }
    

    update() does a few things but the ImageView is mMixImageNormal.

    Am I doing something terribly wrong?

    Here's the Stacktrace:

    11-08 20:17:32.284: ERROR/dalvikvm-heap(13607): Out of memory on a 7672336-byte allocation.
    11-08 20:17:32.284: INFO/dalvikvm(13607): "Picasso-/i/000/549/257/Long-Island-Princesses-Chanel-755.jpg" prio=5 tid=41 RUNNABLE
    11-08 20:17:32.284: INFO/dalvikvm(13607): | group="main" sCount=0 dsCount=0 obj=0x44458bb0 self=0x7867c008
    11-08 20:17:32.284: INFO/dalvikvm(13607): | sysTid=14124 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=2019896184
    11-08 20:17:32.284: INFO/dalvikvm(13607): | state=R schedstat=( 1644123100 955473493 3952 ) utm=137 stm=27 core=0
    11-08 20:17:32.284: INFO/dalvikvm(13607): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:601)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:577)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at com.squareup.picasso.NetworkBitmapHunter.decodeStream(NetworkBitmapHunter.java:93)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at com.squareup.picasso.NetworkBitmapHunter.decode(NetworkBitmapHunter.java:60)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:111)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:82)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at java.lang.Thread.run(Thread.java:841)
    11-08 20:17:32.284: INFO/dalvikvm(13607): at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:218)
    
    opened by Gryzor 108
  • Exception: java.io.IOException: Cannot reset

    Exception: java.io.IOException: Cannot reset

    Hi Square team!

    We are having an issue in an app, when in a listview, images on some rows load but some of them are blank. I tried to trace it and collect as much information as I can.

    Exception

    Picasso:Error:ImageLoadFailed:Uri http://store.indemand.com/shared/ovs/prodimages/movies/t/troublewiththecurve_ID0360906/troublewiththecurveBM_ID0360906.jpg
    
    Picasso:Error:ImageLoadFailed:Exception java.io.IOException: Cannot reset
    
    Picasso:Error:ImageLoadFailed:StackTrace 
    [
        com.squareup.picasso.MarkableInputStream.reset(MarkableInputStream.java:94), 
        com.squareup.picasso.NetworkBitmapHunter.decodeStream(NetworkBitmapHunter.java:91), 
        com.squareup.picasso.NetworkBitmapHunter.decode(NetworkBitmapHunter.java:60), 
        com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:111), 
        com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:82), 
        java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390),
        java.util.concurrent.FutureTask.run(FutureTask.java:234), 
        java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080), 
        java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573), 
        java.lang.Thread.run(Thread.java:856), 
        com.squareup.picasso.Utils$PicassoThread.run(Utils.java:218)
    ]
    

    Responsible code (under getView())

    pBuilder.build().load(URL).fit().into(ImageView);
    

    By the way, I don't know if it matters but airplane mode is on, but wifi is connected. I added this because with every row loading, I am seeing this in logs:

    W/Settings(4289): Setting airplane_mode_on has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value.
    

    Also the app crashed with this, after scrolling through the list up and down many times;

    A/Looper(4289): Could not create wake pipe.  errno=24
    A/libc(4289): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 5091 (Picasso-Dispatc)
    A/libc(4289): Unable to open connection to debuggerd: Too many open files
    

    The app doesn't seem to crash and I also didn't see the W/Settings airplane message if I switch to

    Picasso.with(_context).load(URL).fit().into(imageView);
    

    style instead of Picasso.Builder.

    opened by madmed 72
  • won't load camera images

    won't load camera images

    I am trying to use Picasso to load images in an app from the SD card. If I load images that were not taken by the camera they load in fine, but if I try to get images that were taken by the camera they don't load.

    Images over http work too, just not the camera ones.

    I have also tried downloading the image from that URL and putting it on the phones storage, it loads fine that way too, it only seems to be images taken from the phones camera. Tested it on Galaxy S2 and S5 and a Galaxy Ace 3. So it could be a Samsung/Galaxy issue only.

    Calling Code:

        String file = "/storage/extSdCard/DCIM/Camera/20140609_204344.jpg";
    
        picasso
            .load(new File(file)) // this does not work
            //.load("http://upload.wikimedia.org/wikipedia/commons/4/4e/Pleiades_large.jpg")// this works
            .fit()
            .error(R.drawable.logo)
            .into(this.imageView);
    

    Exception that occurs:

    06-09 21:31:47.662: W/System.err(16633):    java.lang.IllegalArgumentException: y + height must be <= bitmap.height()
    06-09 21:31:47.672: W/System.err(16633):    at android.graphics.Bitmap.createBitmap(Bitmap.java:783)
    06-09 21:31:47.672: W/System.err(16633):    at com.squareup.picasso.BitmapHunter.transformResult(BitmapHunter.java:457)
    06-09 21:31:47.672: W/System.err(16633):    at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:154)
    06-09 21:31:47.672: W/System.err(16633):    at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:101)
    06-09 21:31:47.672: W/System.err(16633):    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
    06-09 21:31:47.672: W/System.err(16633):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    06-09 21:31:47.672: W/System.err(16633):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    06-09 21:31:47.672: W/System.err(16633):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    06-09 21:31:47.672: W/System.err(16633):    at java.lang.Thread.run(Thread.java:841)
    06-09 21:31:47.672: W/System.err(16633):    at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:394)
    
    opened by ram626 54
  • Image won't show (SkImageDecoder::Factory returned null)

    Image won't show (SkImageDecoder::Factory returned null)

    Hi! I'm using Picasso to fetch user's twitter images, but there're some users whose image is not loading, e.g.:

    Picasso.with(getActivity())
    .load("http://pbs.twimg.com/profile_images/2784217159/77e958766fe6a841679167ba02acd677.png")
    .placeholder(R.drawable.twitter_placeholder)
    .resize(216, 216).centerCrop()
    .into((ImageView)view.findViewById(R.id.my_image_view));
    

    I've noticed that logcat prints this:

    D/skia﹕ --- SkImageDecoder::Factory returned null
    

    whenever it happens.

    (I'm testing on a Nexus 4 w/ 4.4.2 (API 19))

    Did anybody have the same problem?

    Thanks!

    opened by iamyellow 44
  • image not loading

    image not loading

    i used the picasso sample app to test this by adding the url to the list in Data.java

    this doesn't load: http://d38eepresuu519.cloudfront.net/af6a65280e49a2ef8c677bd38c88a891/square.jpg

    okhttp-2.0.0-RC1.jar okhttp-urlconnection-2.0.0-RC1.jar okio-1.0.0.jar picasso-2.3.0.jar

    $ curl -I http://d38eepresuu519.cloudfront.net/af6a65280e49a2ef8c677bd38c88a891/square.jpg HTTP/1.1 200 OK Content-Type: image/jpeg Content-Length: 177086 Connection: keep-alive Date: Wed, 04 Jun 2014 18:16:11 GMT Expires: Wed, 03 Jun 2015 01:00:39 GMT Last-Modified: Tue, 03 Jun 2014 01:16:35 GMT ETag: "107bd956286a2c5cd3524f52537fb45a" Accept-Ranges: bytes Server: AmazonS3 Age: 18502 X-Cache: Hit from cloudfront Via: 1.1 a0a19e384553d5e952d3c5003b1438c8.cloudfront.net (CloudFront) X-Amz-Cf-Id: uP9RCEdF4OhIuXCV5_sB8PJRUp83STvg3IEtXJEu695soSLCQLY_Jg==

    opened by jackbelicec 41
  •  I get half photo and half white color, and sometimes I get only the white color.

    I get half photo and half white color, and sometimes I get only the white color.

    I try to load photo in to girdview sometimes a few photos show only half photo and white color for other half, and some the photos show only white color just like the screenshot below.

    15 - 2 15 - 1

    opened by Kuoyhout 40
  • Images no longer displayed after killing/updating the app

    Images no longer displayed after killing/updating the app

    When I install my app on my device, everything works perfectly. But when I update it (like using the "run" button from Android Studio), or just kill it (by swiping it from my "Recent apps"), the images are no longer displayed.

    My code:

    Picasso picasso = Picasso.with(mContext);
    picasso.setLoggingEnabled(true);
    picasso.load(url).into(viewHolder.mainPicture, new Callback() {
        @Override
        public void onSuccess() {
            Log.i(TAG, "PICASSO OK");
        }
    
        @Override
        public void onError() {
            Log.i(TAG, "PICASSO KO");
        }
    });
    

    Logs

    08-27 16:22:41.266      654-654/io.shace.app D/Picasso﹕ Main        created      [R2] Request{http://192.168.0.5:9000/assets/medias/14ce899e-7021-44ef-b44d-bbab5307fa0f.jpg}
    08-27 16:22:41.266      654-746/io.shace.app D/Picasso﹕ Dispatcher  enqueued     [R2]+2ms
    08-27 16:22:41.276      654-762/io.shace.app D/Picasso﹕ Hunter      executing    [R2]+2ms
    08-27 16:22:41.856      654-746/io.shace.app D/Picasso﹕ Dispatcher  retrying     [R2]+586ms
    08-27 16:22:41.856      654-748/io.shace.app D/Picasso﹕ Hunter      executing    [R2]+587ms
    08-27 16:22:42.576      654-746/io.shace.app D/Picasso﹕ Dispatcher  retrying     [R2]+1307ms
    08-27 16:22:42.576      654-749/io.shace.app D/Picasso﹕ Hunter      executing    [R2]+1308ms
    08-27 16:22:42.596      654-746/io.shace.app D/Picasso﹕ Dispatcher  batched      [R2]+1326ms for error
    08-27 16:22:42.796      654-654/io.shace.app I/EventAdapter﹕ PICASSO KO
    08-27 16:22:42.796      654-746/io.shace.app D/Picasso﹕ Dispatcher  delivered    [R2]+1528ms
    08-27 16:22:42.796      654-654/io.shace.app D/Picasso﹕ Main        errored      [R2]+1528ms
    

    Looks like a cache issue to me. The URL is obviously working (locally) since it's working when I uninstall/reinstall the app. The image is not huge (58KB). It's also the only image I'm trying to load so it's probably not a cache size issue.

    The code is inside getView() on a custom Adapter.

    opened by Nivl 40
  • heavy performance issue

    heavy performance issue

    Hello guys!

    I experienced a strange behavior if I try to load a couple 480x320 jpg file into a 100dp x 100dp imageviews (5-6 max on the screen in portrait mode) in a gridview, it is lagging heavily except if it comes from the cache itself. However when i'm trying to load much smaller pictures it is totally smooth. I'm 99% sure that is related to the cache because if i'm using the .skipMemoryCache() function it is much more better! This is happening on all device not just on my n5.

    The library usage is not overly complicated. Picasso.with(mContext).load(mModel.getImageLink()).into(mPreviewImage);

    There are 4 more textviews next to the image in the cell. If'm not loading any images then it is totally okay. The overdraws are minimized everything is green and blue. The latest okhttp 1.5.4 is present. There could be 2000 elements in the adapter. I'm using your awesome library from the beginning and never experienced such a performance drop.

    sample urls: big http://d1bko2jzh7ix12.cloudfront.net/5/c6c469346129c00b9c69b63d092a6f68/gm.jpg small http://d1bko2jzh7ix12.cloudfront.net/5/c6c469346129c00b9c69b63d092a6f68/t.jpg

    Thanks in advance!

    Cheers, Gabor

    opened by gbrbks 39
  • Bitmap from camera not loaded - Moto G Android 5.0.1

    Bitmap from camera not loaded - Moto G Android 5.0.1

    As discussed in issue #539 I am encountering this problem again, since that issue is now closed I am opening a new one to report this bug: Picasso 2.5.2 fails to load images from the local Uri of an image captured via a Camera Intent (the manifest has all the required permission to work with STORAGE and DOCUMENTS). It doesn't throw any exception, the only trace I get of this error is when I attach a Target to the ImageView and it triggers the onBitmapFailed() method. I am using a Moto G on Android 5.0.1. NB: it may be useful to know that I don't get this error using Genymotion's emulator camera.

    Thanks

    opened by leolanzinger 37
  • Declarative Cache Control API

    Declarative Cache Control API

    I've been sitting on this for a while as a future feature but hadn't documented it.

    The API would allow specifying a cache interaction policy both "downward" on the load and "upward" back through the processing. Through this you can facilitate complex cache interactions for both valid and seemingly-questionable use cases.

    Random subset of interactions from other issues:

    • Skip memory cache "downward" only.
    • Skip memory cache "upward" only.
    • Load from local cache (memory or disk) only.
    • Force re-load from network.

    I'm not going to do a full-on API strawman, but I know we'll probably want some EnumSet action with

    public enum BitmapSource { MEMORY, DISK, NETWORK }
    public enum BitmapSink { MEMORY, DISK }
    

    This API will trump the existing weak skipCache() method on RequestCreator.

    opened by JakeWharton 37
  • Images at certain URLs do not load (was: Images that need to be resized up do not display at all)

    Images at certain URLs do not load (was: Images that need to be resized up do not display at all)

    I have two ImageViews; one is 218x192 and the other is 278x192. If I load the same 250x250 image into both of these views with resize([ImageView size]) and centerCrop(), the image is displayed in the first ImageView (which resizes the image down to 218) but not in the second ImageView (which would resize the image up to 278). Only the placeholder is displayed in the second ImageView. I believe this is a regression in 2.0.0 and the upsizing was working previously.

    opened by pushbit 35
  • Picasso not loading cloudfront URLs over wifi connection

    Picasso not loading cloudfront URLs over wifi connection

    Glide and Picasso working fine in my mobile internet connection. But when I connect my mobile with other mobile hotspot it is not working.If you have doubt you can check my URLs:

    https://d1qm53daoujrb6.cloudfront.net/1000x923.jpg https://d1qm53daoujrb6.cloudfront.net/1604x1920.jpg https://d1qm53daoujrb6.cloudfront.net/car3x2.jpg You can test my URLs all are working well and they all are CDN means faster than normal URL.

    Devices I have faced the issue :

    OPPO A15 hotspot: Image is loading after 30 sec. I mean when I open the app initially the connectivity speed is 0.00kb/s-20kb/s after 30 second the connection speed goes upto 5mbps and loads all the iamges. You may say this is because of list of iamges,but no the laoding works well in my mobile data connection. Sample Video POCO F3 hotspot: Same with this the net speed initially stays at 10kbps and after 30 second the speed goes upto 5-6mbps and loads all the iamges. VIVO Y19 hotspot: This works well as I expected. Loads Image instantly. VIVO Y11 hotspot: This works well as I expected. Loads Image instantly. And yes when I connect my laptop with the above hotspots the app works well in android studio emulators.

    But when I load random URLs from google like https://robbreport.com/wp-content/uploads/2022/11/The_25_Fastest_Production_Cars_Lead.jpg?w=1000 this loads well in all the above hotspots. As well as Instagram & Youtube work very well in all the above hotspots. Speed test sample video

    I don't know whether it is URL issue or Glide/Picasso issue or moblie Hotspot. But I'm sure this is not a Internet Service Provider issue. Because the same ISP is present in both working and not working conditon.

    I'm so stressed in this new year, please help.

    opened by AsitDixit 0
  • Bump actions/setup-java from 3.8.0 to 3.9.0

    Bump actions/setup-java from 3.8.0 to 3.9.0

    Bumps actions/setup-java from 3.8.0 to 3.9.0.

    Release notes

    Sourced from actions/setup-java's releases.

    v3.9.0

    In scope of this release we add support for .java-version file (actions/setup-java#426). For more information about its usage please refer to the documentation.

        steps:
          - uses: actions/checkout@v3
          - name: Setup java
            uses: actions/setup-java@v3
            with:
              distribution: '<distribution>'
              java-version-file: .java-version
          - run: java HelloWorldApp.java
    
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Add gif support to network requests

    Add gif support to network requests

    Uses ImageDecoder when available which already handles gifs and falls back to using the android.graphics.Movie API when < 28 with a custom Drawable for rendering.

    https://user-images.githubusercontent.com/672316/204376251-37543b2a-b9d7-499c-ba16-96bfc4853aaf.mov

    opened by gamepro65 0
  • Prevent PicassoExecutorService race condition in DispatcherTest

    Prevent PicassoExecutorService race condition in DispatcherTest

    Been seeing a pattern of flaky DispatcherTests along the lines of

    com.squareup.picasso3.DispatcherTest > performSubmitWithTwoDifferentRequestsQueuesHunters FAILED
        value of: map.size()
        expected: 2
        but was : 1
        map was : {}
            at com.squareup.picasso3.DispatcherTest.performSubmitWithTwoDifferentRequestsQueuesHunters(DispatcherTest.kt:110)
    

    With the debugger I was able to see that PicassoExecutorService is actually spinning up a new thread and executing / completing before our test asserts causing the failure / race condition. Tried swapping PicassoExecutorService out but its required for some tests, so using a spy to prevent creating / executing other threads.

    opened by gamepro65 0
  • Ensure openInputStream cannot kill calling process

    Ensure openInputStream cannot kill calling process

    This addresses issue #2339

    ContentResolver.openInputStream falls back to using a stable content provider which will kill the main process if it fails. Never trust an external process as there may be many things that might cause this such as reinstalls, application updates, etc. Fall back to a FileNotFoundException.

    opened by herriojr 5
  • ContentStreamRequestHandler and Crashing Remote Process

    ContentStreamRequestHandler and Crashing Remote Process

    It appears when using contentResolver.openInputStream(uri), if it is a content:// uri, it will under the hood call ContentResolver.openTypedAssetFileDescriptor. Internal to here, the problem is that if the remote process died while trying to make the call, it falls back to making a call to the stable provider. If the stable provider dies mid call, it will kill the process making the query. The ContentStreamRequestHandler should be rewritten to reimplement the ContentResolver.openInputStream() using only the Unstable ContentProviderClient.

    opened by herriojr 0
Releases(2.8)
  • 2.8(Aug 10, 2020)

  • picasso-parent-2.0.0(Aug 30, 2013)

    • 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 after shutdown() 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 ImageView requests.
    • 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.
    Source code(tar.gz)
    Source code(zip)
  • picasso-parent-1.1.1(Aug 30, 2013)

  • picasso-parent-1.1.0(Aug 30, 2013)

    • load method can now take a Uri.
    • Support loading contact photos given a contact Uri.
    • Add centerInside() image transformation.
    • Fix: Prevent network stream decodes from blocking each other.
    Source code(tar.gz)
    Source code(zip)
  • picasso-parent-1.0.2(Aug 30, 2013)

    • Auto-scale disk cache based on file system size.
    • placeholder now accepts null for 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][1] anyways, right?).
    Source code(tar.gz)
    Source code(zip)
  • picasso-parent-1.0.1(Aug 30, 2013)

  • picasso-parent-1.0.0(Aug 30, 2013)

An image loading and caching library for Android focused on smooth scrolling

Glide | View Glide's documentation | 简体中文文档 | Report an issue with Glide Glide is a fast and efficient open source media management and image loading

Bump Technologies 33.2k Dec 31, 2022
Powerful and flexible library for loading, caching and displaying images on Android.

Universal Image Loader The great ancestor of modern image-loading libraries :) UIL aims to provide a powerful, flexible and highly customizable instru

Sergey Tarasevich 16.8k Jan 2, 2023
Android Auto Apps Downloader (AAAD) is an app for Android Phones that downloads popular Android Auto 3rd party apps and installs them in the correct way to have them in Android Auto.

Android Auto Apps Downloader (AAAD) is an app for Android Phones that downloads popular Android Auto 3rd party apps and installs them in the correct way to have them in Android Auto.

Gabriele Rizzo 865 Jan 2, 2023
Image Cropping Library for Android

uCrop - Image Cropping Library for Android This project aims to provide an ultimate and flexible image cropping experience. Made in Yalantis How We Cr

Yalantis 11.4k Jan 2, 2023
Simple springboot API for addressBook. Supports all REST controllers and have custom error handling for every specific case, also supports redis caching.

AddressBook-SpringBoot-API Simple Springboot API for addressBook with redis cache. Supports all REST controllers and have custom error handling for ev

Shirish Saxena 1 Jan 21, 2022
Spring-boot application using redis as a caching database

Java Spring-boot application using Redis as a caching database Running Application Entities involved Two main entities are involved MasterHouse (maste

null 18 Aug 9, 2022
Small app to create icon sets for Linux, Windows, OSX, Android and IOS from a single PNG image

FXIconcreator Small app to create icon sets (multi resolution) for Linux, Windows, OSX from a single PNG image Reason for creating such an app was tha

null 18 Aug 4, 2022
Stetho is a debug bridge for Android applications, enabling the powerful Chrome Developer Tools and much more.

Stetho Stetho is a sophisticated debug bridge for Android applications. When enabled, developers have access to the Chrome Developer Tools feature nat

Meta 12.6k Jan 3, 2023
The lightweight library for compress image, video, and audio with an awesome experience

Would you like to support me? react-native-compressor Compress videos, images and audio before upload react-native-compressor package is a set of func

Shobbak 265 Jan 1, 2023
Presti 5 Nov 19, 2022
Sample serverless application written in Java compiled with GraalVM native-image

Serverless GraalVM Demo This is a simple serverless application built in Java and uses the GraalVM native-image tool. It consists of an Amazon API Gat

AWS Samples 143 Dec 22, 2022
A simple app to use Xposed without root, unlock the bootloader or modify system image, etc.

中文文档 Introduction VirtualXposed is a simple App based on VirtualApp and epic that allows you to use an Xposed Module without needing to root, unlock t

VirtualXposed 14k Jan 8, 2023
Shows Image you select on Top of every Window by holding the button you choose

ImageOnTop What it does? Shows Image you select on Top of every Window by holding the button you choose. How to use it? Press a keyboard key you want

null 1 Jan 23, 2022
Convert Journeymap image data into Xaero format for Xaero's minecraft map mod

JMtoXaero JMtoXaero is a tool to convert JourneyMap tiles to regions used by Xaero's World Map Description Reads images from the Journeymap folder Wri

Negative Entropy 14 Dec 21, 2022
Admob for React Native with powerful hooks and components

React Native Admob ⚠️ Please note, this package is under active development, which means it may be not stable to apply on production. Please use this

null 128 Jan 6, 2023
🔥 强大的动态线程池,并附带监控报警功能(没有依赖中间件),完全遵循阿里巴巴编码规范。Powerful dynamic thread pool, does not rely on any middleware, with monitoring and alarm function.

?? 动态线程池(DTP)系统,包含 Server 端及 SpringBoot Client 端需引入的 Starter. 这个项目做什么? 动态线程池(Dynamic-ThreadPool),下面简称 DTP 系统 美团线程池文章 介绍中,因为业务对线程池参数没有合理配置,触发过几起生产事故,进而

longtai 3.4k Dec 30, 2022
BRVAH:Powerful and flexible RecyclerAdapter

BRVAH http://www.recyclerview.org/ Powerful and flexible RecyclerView Adapter, Please feel free to use this. (Welcome to Star and Fork) 强大而灵活的Recycler

陈宇明 23.3k Jan 4, 2023
A powerful API whichs allows developers to change a players name and UUID on login.

UUIDSwitcher An easy to use but powerful API for spigot servers which gives developers control over the UUID and name a player logs in with. This chan

BeefDev 6 Nov 30, 2022
Lattice is a powerful, lightweight business extension invoke framework. By using the Lattice framework, complex business customization can be efficiently organized and managed.

Lattice Framework Introduction Lattice is a powerful, lightweight business extension invoke framework. By using the Lattice framework, complex busines

null 41 Dec 30, 2022