Fresco 相关介绍:
Image Pipeline 简单配置Fresco 初始化过程:
1.创建ImagePipelineConfig 对象,配置好初始化相关的参数
2.调用ImagePipelineFactory 工厂方法后去ImagePipeling对象
/**
* Factory class for the image pipeline.
*
* <p>This class constructs the pipeline and its dependencies from other libraries.
*
* <p>As the pipeline object can be quite expensive to create, it is strongly
* recommended that applications create just one instance of this class
* and of the pipeline.
*/
@NotThreadSafe
public class ImagePipelineFactory {
private static ImagePipelineFactory sInstance = null;
/** Gets the instance of {@link ImagePipelineFactory}. */
public static ImagePipelineFactory getInstance() {
return Preconditions.checkNotNull(sInstance, "ImagePipelineFactory was not initialized!");
}
/** Initializes {@link ImagePipelineFactory} with default config. */
public static void initialize(Context context) {
initialize(ImagePipelineConfig.newBuilder(context).build());
}
/** Initializes {@link ImagePipelineFactory} with the specified config. */
public static void initialize(ImagePipelineConfig imagePipelineConfig) {
sInstance = new ImagePipelineFactory(imagePipelineConfig);
}
/** Shuts {@link ImagePipelineFactory} down. */
public static void shutDown() {
if (sInstance != null) {
sInstance.getBitmapMemoryCache().removeAll(AndroidPredicates.<CacheKey>True());
sInstance.getEncodedMemoryCache().removeAll(AndroidPredicates.<CacheKey>True());
sInstance = null;
}
}
private final ImagePipelineConfig mConfig;
//由于这个工厂方法是单例类所以这个构造方法最好应该是private 类型,否则不符合单例模式
public ImagePipelineFactory(ImagePipelineConfig config) {
mConfig = Preconditions.checkNotNull(config);
}
}