首先先介绍最简单的列表图片加载(单个ImageView元素)
最简单的图库样式列表
1.定义数据源(这里上传了一些网络图片)

public static String[] eatFoodyImages = {"http://i.imgur.com/rFLNqWI.jpg","http://i.imgur.com/C9pBVt7.jpg","http://i.imgur.com/rT5vXE1.jpg","http://i.imgur.com/aIy5R2k.jpg","http://i.imgur.com/MoJs9pT.jpg","http://i.imgur.com/S963yEM.jpg","http://i.imgur.com/rLR2cyc.jpg","http://i.imgur.com/SEPdUIx.jpg","http://i.imgur.com/aC9OjaM.jpg","http://i.imgur.com/76Jfv9b.jpg","http://i.imgur.com/fUX7EIB.jpg","http://i.imgur.com/syELajx.jpg","http://i.imgur.com/COzBnru.jpg","http://i.imgur.com/Z3QjilA.jpg",
};

2.Activity 创建一个Adapter和ListView

public class UsageExampleAdapter extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_usage_example_adapter);listView.setAdapter(new ImageListAdapter(UsageExampleAdapter.this, eatFoodyImages));}
}

3.ListView的item布局(这里只是为了实例,图片展示可能不是最佳的展现方式)

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="200dp"/>

4.定制Adapter

public class ImageListAdapter extends ArrayAdapter {private Context context;private LayoutInflater inflater;private String[] imageUrls;public ImageListAdapter(Context context, String[] imageUrls) {super(context, R.layout.listview_item_image, imageUrls);this.context = context;this.imageUrls = imageUrls;inflater = LayoutInflater.from(context);}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (null == convertView) {convertView = inflater.inflate(R.layout.listview_item_image, parent, false);}Glide.with(context).load(imageUrls[position]).into((ImageView) convertView);return convertView;}
}

虽然和常规的加载图片的方式没什么区别,但需要注意的是,在ListView中我们一般会需要复用布局的View来创造更快更平滑的用户体验。此处Glide会自动取消图片的请求,清除图片复用,加载正确合适的图片显示ImageView上。

强调一点:当你上下滚动列表时,你会发现图片比第一次加载快很多,更新时,图片加载几乎不需要时间。不用猜了,这些图片来自于缓存,不会再次从网络加载。
Glide的缓存实现是基于Picasso的,从而使缓存实现对你来说更容易实现(这里是对用过Picasso框架的伙伴而言的)。缓存的大小取决于设备的磁盘大小。
加载图片的时候,Glide使用了三种资源:内存,磁盘,网络(速度由快变慢)。(tips:也就是三级缓存实现)。当然,你什么都不需要做,Glide会帮你实现,Glide隐藏了这些复杂的具体实现,并且实现了智能缓存图片的大小。下面的博文会详细介绍。

简单的图库图片加载实现:GridView
和ListView的使用方式相同,甚至Adapter也相同,只是将ListView改为GridView

Activity layout

<?xml version="1.0" encoding="utf-8"?>
<GridView
    android:id="@+id/usage_example_gridview"xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:numColumns="2"/>

目前为止,我们只展示了item只为一个元素的ListView Adapter的用法,当然这种方式也适用于多个元素的Adapter item。getView()方法略有不同,但Glide加载图片的代码是相同的。

3.Glide使用之ListAdapter加载图片篇相关推荐

  1. Glide 如何实现正确加载图片而没有错位

    我们在平时的项目使用下面的代码 GlideApp.with(context).load(url).into(imageView); 当我们在常见的列表界面中(如 recycleview 实现的列表), ...

  2. Android Glide加载图片时转换为圆形、圆角、毛玻璃等图片效果

     Android Glide加载图片时转换为圆形.圆角.毛玻璃等图片效果 附录1简单介绍了Android开源的图片加载框架.在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬 ...

  3. Android --- Glide加载图片时候调用asBitmap()方法的时候总是报错,点不出来?

    今天写Glide加载图片的时候,网上给的例子全都是这样写的 很明显.asBitmap()在load后面,放到我的代码里就会报错,如下: 最后查了半天度娘才发现要在with()之后添加asBitmap( ...

  4. Android Glide加载图片成圆形

    今天,简单讲解android使用glide加载图片成圆形. 这个很简单,因为之前需要在RecyclerView里加载圆形图片,所以在网上查找了资料,很简单就解决了. 1.导入依赖 implementa ...

  5. Android之glide加载图片圆角效果

    1 问题 Android加载图片需要圆角化,有什么简单粗暴的方法吗?当然有,用我们的神器glide 2 解决办法 1)简单办法 ImageView imageView = (ImageView)hel ...

  6. glide工具类。加载显示原图片,显示圆角图片,gif图标显示

    依赖 //支持gif 的控件 implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.1' 工具方法 private void up ...

  7. glide首次加载图片时,出现图片变形,重复一下就正常

    glide首次加载图片时,出现图片变形问题,重复一下就正常了,这样看着总是很不爽! 简单粗暴的解决办法:将加载的动画去掉,出来的就加载正常了! dontAnimate() 例如:Glide.with( ...

  8. android glide圆形图片,Android Glide加载图片成圆形

    释放双眼,带上耳机,听听看~! 今天,简单讲解android使用glide加载图片成圆形. 这个很简单,因为之前需要在RecyclerView里加载圆形图片,所以在网上查找了资料,很简单就解决了. 1 ...

  9. Glide加载图片模糊问题

    关于Glide加载图片模糊 需求:1.整张界面展示大图,可缩放.2.在无网络情况下,展示缓存图片:3.大图要清晰. 1.缩放控件可以直接从网络上找,遍地的自定义view.由于项目里面用的有环信,所以直 ...

最新文章

  1. python四十九:封装
  2. CTO关注:升级Win 10,除了更安全还有什么
  3. iptables限制最大连接数_性能调优,让你的服务器更强大!增加TCP连接最大限制...
  4. 山西省职高计算机分数线,2020年山西五年制高职和普通中专录取分数线
  5. 解决win2003远程桌面只能最多连接2个用户的问题
  6. 06-BCD计数器设计与应用——小梅哥FPGA设计思想与验证方法视频教程配套文档
  7. 《Python Cookbook 3rd》笔记(3.9):大型数组运算
  8. nginx的请求接收流程(一)
  9. 很多创业失败的负债者
  10. DataFrame创建程序利用字典创建dataframe对象
  11. quartz 动态添加job_SpringBoot 集成Quartz发布、修改、暂停、删除定时任务
  12. vmin、vmax用处
  13. rust最美建筑_历届普利兹克奖大师作品回顾——建筑界的诺贝尔奖
  14. R语言在Ubuntu环境下添加times new roman字体
  15. android 自定义indicator,Android自定义Indicator
  16. Failed to introspect Class druid问题
  17. 美国医生谈医疗创业公司的五大成功要素:简化流程、绩效工资、授权
  18. 挂耳式耳机品牌排行榜,看看谁被推荐上榜
  19. 5位评委对参赛选手进行打分,将所有的打分结果存储到对应类型的数组中, 将所有的评分结果去除一个最低分,去除一个最高分,然后获取的平均分数为 选手的最终得分.设计程序,用键盘输入5位评委的评分,并打印输
  20. UE4 材质制作闪烁心脏起搏效果 学习笔记

热门文章

  1. 读论文-Cycle GAN
  2. 网络远程视频会议管理系统一览
  3. 114啦网址导航1.13版如何修改LOGO大小-【超级简单】。
  4. 苹果手机功能大全介绍_手机录音功能在哪里?一键开启苹果录音功能
  5. 充电c语言,USB电池充电基础
  6. bat文件快速备份PostgreSQL数据库
  7. python每日读02-re模块与正则表达式
  8. dec-c 怎么改语言,汇编中的dec指令是什么指令
  9. [入门]树(treeview)控件制作导航的做法(一)
  10. 初中计算机flash考试题,【信息技术中考专区】Flash操作题专练(七)!