1.必须设置宽高,可以xml中设置,也可以在代码中设置,不支持wrap——content,如果在xml中拿不准宽高,要在代码中
调用setLayoutparams显式设置宽高
2.以下个方法也许你会用到
public static void init(Context context) {
DiskCacheConfig disCacheConfig = getDisCacheConfig(context);
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(context)
.setMainDiskCacheConfig(disCacheConfig)
.build();
Fresco.initialize(context, config);
}
/**
* 预加载图片
* @param context
* @param url
*/
public static void preLoadImg(Context context,String url){
if (context==null|| TextUtils.isEmpty(url))return;
ImagePipeline imagePipeline = Fresco.getImagePipeline();
ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url)).setLowestPermittedRequestLevel(ImageRequest.RequestLevel.FULL_FETCH)
.build();
imagePipeline.prefetchToBitmapCache(imageRequest,null);
imagePipeline.prefetchToDiskCache(imageRequest,null);
}
/**
*
*/
private static final String MYPROJECTDIRECOTRY = "frescoimg";
public static DiskCacheConfig getDisCacheConfig(final Context context) {
return DiskCacheConfig.newBuilder().setBaseDirectoryPathSupplier(new Supplier() {
public File get() {
String cacheFilePath = Contants.FileConfig.getRootdir(context);
File cacheDir = new File(cacheFilePath);
return cacheDir;
}
}).setBaseDirectoryName(MYPROJECTDIRECOTRY).setMaxCacheSize(41943040L).setMaxCacheSizeOnLowDiskSpace(10485760L).setMaxCacheSizeOnVeryLowDiskSpace(2097152L).build();
}