一、ImageLoader(注意在Manifest中注册)
1、创建一个类MyAPP,继承Application
MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(configuration);
}
2、适配器
private ImageLoader imageLoader = ImageLoader.getInstance();
private DisplayImageOptions options;
//构造方法
public MyAdapter(Context context, List<NewsBean.DataBean> list) {
this.context = context;
this.list = list;
options = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.mipmap.ic_launcher) 设置联网失败时默认图片
.showImageOnFail(R.mipmap.ic_launcher)
.cacheInMemory(true)
.bitmapConfig(Bitmap.Config.ARGB_8888)
.bitmapConfig(Bitmap.Config.ARGB_8888) //设置图片的解码类型
.displayer(new CircleBitmapDisplayer())//加载圆角图片
.build();
}
二、Glide
依赖:implementation 'com.github.bumptech.glide:glide:4.8.0'
Glide.with(上下文).load(mUrl).into(控件);
Glide.with(context).load(split[0]).apply(RequestOptions.bitmapTransform(new CircleCrop())).into(viewHolder.img); //加载圆形图片
三、Picasso
Picasso.get().load(mUrl).into(控件);
四、Fresco(注意在Manifest中注册)
依赖:implementation 'com.facebook.fresco:fresco:1.11.0'
1、创建一个类MyAPP,继承Application
MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
// 设置磁盘缓存
DiskCacheConfig diskCacheConfig = DiskCacheConfig.newBuilder(this)
.setBaseDirectoryName("images_zjj")
.setBaseDirectoryPath(Environment.getExternalStorageDirectory())
.build();
//设置磁盘缓存的配置,生成配置文件
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this)
.setMainDiskCacheConfig(diskCacheConfig)
.build();
Fresco.initialize(this,config); //注册
2、 XML
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/imgs"
android:layout_width="200dp"
android:layout_height="200dp"
app:fadeDuration="3000" //渐进事件
app:roundAsCircle="true" //圆图
app:roundedCornerRadius="10dp"/> //圆角
3、MainActivity
public class MainActivity extends AppCompatActivity {
private SimpleDraweeView imgs;
private String gifUrl = "http://img.soogif.com/qiiUcher0DGOHk39ugCWUAA5nWvy57JE.gif";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
Uri uri = Uri.parse("http://uploads.oh100.com/allimg/1709/117-1FZ5102542-52.jpg");
//设置支持jpeg渐进式展示(从模糊到清晰)
ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(uri)
.setProgressiveRenderingEnabled(true)
.build();
//设置GIF动图
BaseControllerListener<ImageInfo> baseControllerListener = new BaseControllerListener<ImageInfo>() {
@Override
public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable animatable) {
animatable.start();
}
@Override
public void onFailure(String id, Throwable throwable) {
Toast.makeText(MainActivity.this, "加载失败", Toast.LENGTH_SHORT).show();
}
};
AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setAutoPlayAnimations(true) //播放gif 图片
.setControllerListener(baseControllerListener)
.setImageRequest(imageRequest)
.build();
imgs.setController(controller);
}
private void initView() {
imgs =findViewById(R.id.imgs);
}
}