Android组件Glide实现图片平滑滚动效果
作者:lijiao 发布时间:2022-02-24 22:53:14
标签:Android,Glide,图片滚动
Glide是一款基于Android的图片加载和图片缓存组件,它可以最大性能地在Android设备上读取、解码、显示图片和视频。Glide可以将远程的图片、视频、动画图片等缓存在设备本地,便于提高用户浏览图片的流畅体验。
Glide最核心的功能就是提高滚动图片列表的性能,并且Glide还能满足对远程图片的读取、改变尺寸以及展示的性能要求。
Glide使用方法
最简单的示例代码如下:
// For a simple view:
@Override
public void onCreate(Bundle savedInstanceState) {
...
ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
Glide.with(this).load("http://goo.gl/h8qOq7").into(imageView);
}
// For a list:
@Override
public View getView(int position, View recycled, ViewGroup container) {
final ImageView myImageView;
if (recycled == null) {
myImageView = (ImageView) inflater.inflate(R.layout.my_image_view,
container, false);
} else {
myImageView = (ImageView) recycled;
}
String url = myUrls.get(position);
Glide.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.crossFade()
.into(myImageView);
return myImageView;
}
在Glide上应用Volley通信框架
Volley是Glide的可选项,可以支持http/https来读取图片。
用Gradle:
dependencies {
compile 'com.github.bumptech.glide:volley-integration:1.0.+'
compile 'com.mcxiaoke.volley:library:1.0.+'
}
或者用Maven:
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>volley-integration</artifactId>
<version>1.0.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.mcxiaoke.volley</groupId>
<artifactId>library</artifactId>
<version>1.0.5</version>
<type>aar</type>
</dependency>
然后在Activity或者Application中注册 Volley的加载项即可:
public void onCreate() {
Glide.get(this).register(GlideUrl.class, InputStream.class,
new VolleyUrlLoader.Factory(yourRequestQueue));
...
}
这样所有的请求就会通过Volley了。
在Glide中应用OKHttp通信框架
除了Volley,Glide中还可以使用OkHttp通信框架,OkHttp同样支持http/https来读取图片。
用Gradle:
dependencies {
compile 'com.github.bumptech.glide:okhttp-integration:1.0.+'
compile 'com.squareup.okhttp:okhttp:2.0.+'
}
或者用Maven:
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>okhttp-integration</artifactId>
<version>1.0.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>2.0.0</version>
<type>jar</type>
</dependency>
然后在Activity或者Application中注册 OkHttp的加载项即可:
public void onCreate() {
Glide.get(this).register(GlideUrl.class, InputStream.class,
new OkHttpUrlLoader.Factory(yourOkHttpClient));
...
}
总结
如果你的Android应用中涉及到远程图片的处理,那么Glide组件可以帮助你在图片视频方面优化应用程序。
来源:http://www.codeceo.com/article/android-glide.html


猜你喜欢
- springmvc的图片上传1.导入相应的pom依赖 <dependency> <groupId>co
- 使用JPA CriteriaQuery查询的注意事项1.pojo类@Entity@Table(name = "report_wor
- 本文实例为大家分享了Unity3D仿写Button面板事件绑定功能的具体代码,供大家参考,具体内容如下最近在做一个情节引导得项目。其中一个需
- ⛳️ 基本类型做形式参数(零散参数的数据接收)1、基本数据类型要求前台页面的表单输入框的name属性值与对应控制器方法中的形式参数名称与类型
- 问题描述这里我想测试某个与springboot相关的问题,结果在搭建mybatis时,发现没有成功从数据库中获取数据,报错信息为com.my
- 前言spring框架作为JavaEE框架领域的一款重要的开源框架,在企业应用开发中有着很重要的作用,同时Spring框架及其子框架很多,所以
- 这篇文章主要介绍了spring强行注入和引用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数
- 目录前言I. 项目环境1. 项目依赖2. 配置II. 邮件发送1. 简单文本邮件发送2. html发送3. 添加附件4. Freemaker
- 测试APP时出现以下错误信息:Intel HAXM is required to run this AVD.Your CPU does no
- 1 背景与动机通常,如果只想用C#在控制台上打印一行“Hello World!”,这可不是Console.WriteLine("H
- xxljob介绍XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上
- 时钟的使用1、声明VOID CALLBACK playproc( HWND hwnd, &nb
- 实现Android studio设置自动导包及自动导包快捷键方式一:Android studio只有导单个包的快捷键:Alt+Enter。方
- 今天看了一下数据结构,一个练习就是构建哈夫曼树,就顺手用C#写了一个。static void Main(string[] args){ &n
- 我们肯定遇到过打开别人的项目时一直处于Building‘XXX'Gradle project info的情况。本文通过两种方法带领大
- starter起步依赖starter起步依赖是springboot一种非常重要的机制,它打包了某些场景下需要用到依赖,将其统一集成到star
- 自己闲下来时间写的一个课表控件,使用的自定义LinearLayout,里面View都是用代码实现的,最终效果如下图,写的可能有问题希望多多指
- 废话不多说了,直接给大家贴代码了,具体代码如下所示:public class RoundImageView extends ImageVie
- 今天给大家介绍一下SpringBoot中JPA的一些常用操作,例如:增删改查、分页、排序、事务操作等功能。下面先来介绍一下JPA中一些常用的