5

有没有办法通过指定使用的缓存键将图像加载到毕加索的图像缓存中?

附带说明一下,如果这不可能,我已经进行了必要的更改,但我不确定如何重建 jar。任何重建毕加索的指示都非常感谢。

4

3 回答 3

5

您可以在您的 requestCreator 对象上调用 stableKey。

https://square.github.io/picasso/2.x/picasso/com/squareup/picasso/RequestCreator.html#stableKey-java.lang.String-

它会像: Picasso.with(context).load(yourURL).stableKey(yourKey).into(textView);

于 2016-10-03T19:35:48.460 回答
0

我没有发现对此功能没有公共访问权限,但对我来说可以使用以下解决方法:

//1. Init picasso, create cache
mCache = new LruCache(mContext);
mPicasso = new Picasso.Builder(mContext).memoryCache(mCache).build();

//2. Load bitmap 
mPicasso.load(uri).resize(mThumbWidth, mThumbHeight).centerCrop().into(v, callback);

//3. In case of error (for example, in callback), you can manually download the picture and store to cache
Bitmap bmp = <custom load>
//make key
StringBuilder sb = new StringBuilder(uri);
sb.append("\nresize:").append(mThumbWidth).append("x").append(mThumbHeight).append("\ncenterCrop\n");
mCache.set(sb.toString(), bmp);

请注意,一个键用于 uri 和您的自定义转换(resize、centerCrop ant 等,在 com.squareup.picasso.Utils#createKey 中查看更多信息)

于 2016-01-25T23:03:14.953 回答
-1

这对我有用

String strUrl = WWW.sultan.com....;    
    Bitmap = bitmap;
    Picasso.with(Profile.this).load(strUrl).into(new Target() {
        @Override
        public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
            userImage.setImageBitmap(bitmap);
            this.bitmap = bitmap; //this can be used any where in the code   

        }

        @Override
        public void onBitmapFailed(Drawable errorDrawable) {

        }

        @Override
        public void onPrepareLoad(Drawable placeHolderDrawable) {

        }
    });
于 2016-10-07T19:03:09.223 回答