Universal ImageLoader

Android RecyclerView利用Glide加载大量图片into(Target)导致OOM异常

前提是你 提交于 2019-12-06 06:13:29
学过android的人应该都知道Glide是一个无比强大的图片加载库,它内部已经提供了很好的缓存机制供我们选择,我们只需一个参数调用即可(DiskCacheStrategy()),而不必像Universal-Image-Loader类一样自己实现。正是因为它太好用了,导致我们很容易忽略一些重要的细节。Android的bitmap对象是最容易导致OOM的元凶之一,如果我们加载大量的bitmap对象,我们就不得不预防OOM。   我的原意是想将图片加载进RecyclerView里以StaggeredGridLayoutManager模式2列显示,实现瀑布流效果 mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); 但是因为图片都是网络中获取到的,不知道其具体大小,因此一开始采用target来实现,具体如下: Glide.with(itemView.getContext()) .load(url) .asBitmap() .placeholder(R.drawable.error_pic) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(new SimpleTarget<Bitmap>

修改源码,使volley框架下支持发送和读取cookie

自作多情 提交于 2019-12-04 05:46:42
本文为原创,转载请注明出处,否则将依法追究版权 修改源码,让不支持cookie发送的volley框架支持cookie 我们平时开发android应用都需要用到网络技术,通常采用http协议来发起请求并接受网络数据。android系统提供两种方式进行http通信:HttpURLConnection和HttpClient。不过这两种方式稍复杂,如果不适当封装会导致许多重复代码。因此android网络通信框架应运而生,如AsynHttpClient(把Http所有的通信细节全封装在内,只需几行代码就可以完成通信),Universal_Image_loader(使界面上显示网络图片的操作变得极其简单,开发者不用关心如何从网络上获取图片,也不用关心开启线程,回收图片资源等细节,它已把一切都做好)。Google I/O大会上退出了新的 网络通信架构volley ,volley集HttpClient和HttpURLConnection优点于一身,Volley非常适合数据量不大,通信频繁的网络操作,但对于大数据量的网络操作比如下载文件,Volley表现糟糕。 volley学习资料: Android 网络通信框架Volley简介(Google IO 2013) Android Volley完全解析(一),初识Volley的基本用法 Android Volley完全解析(二)

Android RecyclerView利用Glide加载大量图片into(Target)导致OOM异常

女生的网名这么多〃 提交于 2019-12-02 16:46:30
学过android的人应该都知道Glide是一个无比强大的图片加载库,它内部已经提供了很好的缓存机制供我们选择,我们只需一个参数调用即可(DiskCacheStrategy()),而不必像Universal-Image-Loader类一样自己实现。正是因为它太好用了,导致我们很容易忽略一些重要的细节。Android的bitmap对象是最容易导致OOM的元凶之一,如果我们加载大量的bitmap对象,我们就不得不预防OOM。   我的原意是想将图片加载进RecyclerView里以StaggeredGridLayoutManager模式2列显示,实现瀑布流效果 mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); 但是因为图片都是网络中获取到的,不知道其具体大小,因此一开始采用target来实现,具体如下: Glide.with(itemView.getContext()) .load(url) .asBitmap() .placeholder(R.drawable.error_pic) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(new SimpleTarget<Bitmap>