Android图片加载缓存框架Glide
作者:BetterLaterThanNever 发布时间:2021-11-13 12:43:02
标签:Android,图片加载,图片缓存,框架Glide
Glide开源框架是Google推荐的图片加载和缓框架,其在Github上的开源地址是:https://github.com/bumptech/glide
当然一个Google推荐的框架肯定就是Volley啦。
目前Android主流开发工具是AndroidStudio,在AndroidStudio如何使用Glide,https://github.com/bumptech/glide上有详细的介绍说明。
因为刚换新工作不久,公司和的还是Eclipse,所以学习Glide我暂时还用的Eclipse开发工具。
步骤:
添加glide.jar包到项目中,jar包可以在网上下载。
编写代码
public class MainActivity extends Activity {
private ImageView glide_iv;
private ListView glide_lv;
private static final String URL ="这里写图片url";
private List<String> urls = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initDatas();
glide_iv = (ImageView) findViewById(R.id.glide_iv);
// 通过下面这句代码把网络图片加载到ImageView中,非常方便
//Glide的with方法不仅接受Context,还接受Activity 和 Fragment等,Context会自动的从他们获取,使用很方便
Glide.with(this).load(URL).into(glide_iv);
glide_lv = (ListView) findViewById(R.id.glide_lv);
glide_lv.setAdapter(new BaseAdapter() {
@Override
public View getView(int arg0, View contentView, ViewGroup arg2) {
ViewHolder holder=null;
if (contentView == null) {
holder=new ViewHolder();
contentView= LayoutInflater.from(
MainActivity.this).inflate(R.layout.my_image_view,
null);
holder.itemIv = contentView.findViewById(R.id.item_iv);
contentView.setTag(holder);
} else {
holder=(ViewHolder) contentView.getTag();
}
String url = urls.get(arg0);
//在ListView中加载列表图片
Glide.with(MainActivity.this).load(url).centerCrop()
.placeholder(R.drawable.ic_launcher).crossFade()
.into(holder.itemIv);
return contentView;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return urls.get(arg0);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return urls.size();
}
class ViewHolder{
ImageView itemIv;
}
});
}
/**
* 添加数据
*/
private void initDatas() {
for (int i = 0; i < 5; i++) {
urls.add(URL);
}
}
}
布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp" >
<ImageView
android:id="@+id/glide_iv"
android:layout_width="80dp"
android:layout_height="80dp" />
<ListView
android:id="@+id/glide_lv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/glide_iv">
</ListView>
</RelativeLayout>
最后记得在AndroidManifest.xml中添加网络权限:
<uses-permission android:name="android.permission.INTERNET" >


猜你喜欢
- 1.引言在实习期间,感受到在vs code上编程的优势(实习期间主要写的lua脚本),因此想把C++和python的开发也迁移到vs cod
- 新手练手必备~密码账户为:先创建账户类:package cn.Atm;/*** @author 偶my耶*/import java.io.*
- 首先给大家展示下效果图,感觉还不错,请继续往下阅读:下拉刷新: 上划加载 &n
- 前言本文告诉大家如何使用 Marshal 做出可以快速释放内存的大数组。最近在做 3D ,需要不断申请一段大内存数组,然后就释放他,但是 C
- ava最明显的一个优势就是它的内存管理机制。你只需简单创建对象,java的垃圾回收机制负责分配和释放内存。然而情况并不像想像的那么简单,因为
- 学习内容:1.普通参数2.pojo参数3.嵌套pojo4.数组参数5.集合参数6.解决中文乱码7.json数据传递参数案例分析:1.pom.
- boolean isGBK(String s) throws UnsupportedEncodingException { if(s.equ
- 一,概念1,排序排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 平时的上下文中,如果提到排序,通常指的
- 企业级的系统和我们平常桌面、手机上运行的软件有着很重要的区别,其中比较重要的一点就是环境(包括第三方的系统的不同接口以及各系统的不同版本、安
- 在平时的工作中,估计大多数都做过轮询调度的任务,比如定时轮询数据库同步,定时邮件通知等等。大家通过windows计划任务,windows服务
- 开发背景开发工具:VS2017语言:C#DotNet版本:.Net FrameWork 4.0及以上系统:Win10 X64一、首先建立一个
- 一、实现对ScrollViewer样式的自定义主要包括:1、滚动条宽度设置2、滚动条颜色3、滚动条圆角4、滚动条拉动时的效果mouseove
- 简述:观察Byte值转为字符写入文件如果在java里用byte打印出来只有33 到 126的输出字符比较正常此外发现Byte值为13是空格,
- 本文实例实现一个启动画面,采用了显示Aform,过一段时间,隐藏这个Aform,showdialog下一个Bform,closeAForm这
- 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。例如:
- 最近在使用后端云Bmob对数据进行存储,目的是在不搭建服务器的前提下,能对Android应用的数据进行操作处理,其实这篇是比较久之前写的了,
- 本文实例讲述了C#图像处理之边缘检测(Sobel)的方法。分享给大家供大家参考。具体如下://定义sobel算子函数private stat
- 何为原子性原子性:一条线程在执行一系列程序指令操作时,该线程不可中断。一旦出现中断,那么就可能会导致程序执行前后的结果不一致。与数据库中的原
- 一、单线程扫描1.代码using System;using System.Windows.Forms;using System.Net;us
- 一、ObjectContext对象上下文Entity SQL 语言 - ADO.NET | Microsoft 官当文档ObjectCont