博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android最新Glide 4.0使用简介
阅读量:7219 次
发布时间:2019-06-29

本文共 4070 字,大约阅读时间需要 13 分钟。

Android最新Glide 4.0使用简介
Glide自v3.0到v4.0使用,发生了一些比较大的改变,使用方式和编程模型有了新的变化,这些变化,使得Glide的功能更加强大,性能更加优良,提供了开放的编程接口,便于开发者自定制,以适应自有项目的定制化开发。
本例给出一些最新Android Glide 4.0的新变化、新模型的简单使用方式。
写一个简单垂直线性布局:

测试的MainActivity.java,在这里面有四个不同的新版Glide 4.0使用方式:

package zhangphil.phildemo;import android.graphics.drawable.Drawable;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ImageView;import com.bumptech.glide.Glide;import com.bumptech.glide.Priority;import com.bumptech.glide.RequestBuilder;import com.bumptech.glide.load.DataSource;import com.bumptech.glide.load.engine.DiskCacheStrategy;import com.bumptech.glide.load.engine.GlideException;import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;import com.bumptech.glide.request.RequestListener;import com.bumptech.glide.request.RequestOptions;import com.bumptech.glide.request.target.Target;public class MainActivity extends AppCompatActivity {    private String url = "https://www.baidu.com/img/bd_logo1.png";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ImageView image1 = (ImageView) findViewById(R.id.image1);        ImageView image2 = (ImageView) findViewById(R.id.image2);        ImageView image3 = (ImageView) findViewById(R.id.image3);        ImageView image4 = (ImageView) findViewById(R.id.image4);        load1(image1);        load2(image2);        load3(image3);        load4(image4);    }    private void load1(ImageView image) {        Glide.with(this)                .load(url)                .apply(new RequestOptions().circleCrop().placeholder(R.mipmap.ic_launcher))                .transition(new DrawableTransitionOptions().crossFade(2000))                .into(image);    }    private void load2(ImageView image) {        RequestOptions options = new RequestOptions()                .centerCrop()                .placeholder(R.mipmap.ic_launcher_round)                .error(android.R.drawable.stat_notify_error)                .priority(Priority.HIGH)                //.skipMemoryCache(true)                .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC);        Glide.with(this)                .load(url)                .apply(options)                .into(image);    }    private void load3(ImageView image) {        Glide.with(this)                .load(url)                .listener(new RequestListener
() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target
target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(Drawable resource, Object model, Target
target, DataSource dataSource, boolean isFirstResource) { return false; } }) .apply(new RequestOptions().centerInside()) .thumbnail(Glide.with(this).load(R.mipmap.ic_launcher)) .into(image); } private void load4(ImageView image) { RequestBuilder
mRequestBuilder = Glide.with(this).load(url); mRequestBuilder.listener(new RequestListener
() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target
target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(Drawable resource, Object model, Target
target, DataSource dataSource, boolean isFirstResource) { return false; } }).transition(new DrawableTransitionOptions().crossFade(2000)) .apply(new RequestOptions().circleCrop()) .into(image); }}
本例给出了几个不同的方式使用新版Glide 4.0加载网络图片,对比这四种方式,可以举一反三变化出更多使用方法。

不要忘了添加读写存储和访问网络的权限:

代码运行结果:

附录:

1,Glide在github上的开源项目主页:https://github.com/bumptech/glide

你可能感兴趣的文章
ACdream - 1735:输油管道
查看>>
golang 获取get参数
查看>>
服务器状态码
查看>>
非小型电子商务系统设计经验分享
查看>>
Video Target Tracking Based on Online Learning—深度学习在目标跟踪中的应用
查看>>
深度学习理论解释基础
查看>>
遗传算法
查看>>
将web网站移动化
查看>>
Application-Session-Cookie
查看>>
Perl的多进程框架(watcher-worker)
查看>>
phpMyAdmin 后台拿webshell
查看>>
Linux 关机 休眠, 关闭移动设备自动挂载 命令
查看>>
Html唤起手机APP,如果有就唤起,如果没有就跳到下载页。
查看>>
Java中File类如何扫描磁盘所有文件包括子目录及子目录文件
查看>>
VC++ 限制窗口的大小范围的方法
查看>>
结对开发-返回一个整数数组中最大子数组的和(首尾相接版)
查看>>
meanshift-聚类
查看>>
不要if else的编程
查看>>
rn.ShowDialog() == DialogResult.OK
查看>>
20160519
查看>>