ImageLoader、Glide、Picasso、Fresco图片加载框架

一、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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值