2016-09-07 3 views
-4

Я сделал приложение, которое загружает изображение на сервер, а затем загружает его по определенному URL-адресу. Вопрос: если я знаю точный URL-адрес этого изображения перед загрузкой, можно кэшировать его, не делая нового запроса для его получения?Android Picasso make manual cache

ответ

0

Сначала создайте новый класс, чтобы получить свой собственный объект синглтон Picasso

import android.content.Context; 
import com.squareup.picasso.Downloader; 
import com.squareup.picasso.OkHttpDownloader; 
import com.squareup.picasso.Picasso; 

public class PicassoCache { 

    /** 
    * Static Picasso Instance 
    */ 
    private static Picasso picassoInstance = null; 

    /** 
    * PicassoCache Constructor 
    * 
    * @param context application Context 
    */ 
    private PicassoCache (Context context) { 

     Downloader downloader = new OkHttpDownloader(context, Integer.MAX_VALUE); 
     Picasso.Builder builder = new Picasso.Builder(context); 
      builder.downloader(downloader); 

     picassoInstance = builder.build(); 
    } 

    /** 
    * Get Singleton Picasso Instance 
    * 
    * @param context application Context 
    * @return Picasso instance 
    */ 
    public static Picasso getPicassoInstance (Context context) { 

     if (picassoInstance == null) { 

      new PicassoCache(context); 
      return picassoInstance; 
     } 

     return picassoInstance; 
    } 

} 

использовать свой собственный одноплодной объект Picasso Вместо Picasso.With()

PicassoCache.getPicassoInstance(getContext()).load(imagePath).into(imageView) 

ответа на третий вопрос: вы не требуется никаких разрешений на диск для операций с кешем диска

Смежные вопросы