Glide4.0使用

导入

  1. dependencies {
      compile ‘com.github.bumptech.glide:glide:4.0.0‘
      compile ‘com.android.support:support-v4:25.3.1‘
      annotationProcessor ‘com.github.bumptech.glide:compiler:4.0.0‘
    }
  2. 2.下载jar  地址:glide.jar

基本使用

  1. 基本使用
Glide.with(this).load(imgUrl).into(img1);

  2. 设置预加载和加载失败的图片及缓存策略

  

RequestOptions options = new RequestOptions()        .centerCrop()        .placeholder(R.mipmap.ic_launcher)//预加载图片        .error(R.mipmap.ic_launcher)//加载失败显示图片        .priority(Priority.HIGH)//优先级        .diskCacheStrategy(DiskCacheStrategy.NONE);//缓存策略Glide.with(this).load(imgUrl).apply(options).into(img1);

显示圆形图片

  •   定义转化圆形的类 继承自BitmapTransforation

  

public class GlideCircleTransform extends BitmapTransformation {
    public GlideCircleTransform(){
        super();
    }

    @Override
    protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {
        return circleCrop(pool,toTransform);
    }

    @Override
    public void updateDiskCacheKey(MessageDigest messageDigest) {

    }
    private static Bitmap circleCrop(BitmapPool pool,Bitmap source){
        if(source==null) return null;
        int size=Math.min(source.getWidth(),source.getHeight());
        int x=(source.getWidth()-size)/2;
        int y=(source.getHeight()-size)/2;
        Bitmap squared= Bitmap.createBitmap(source,x,y,size,size);
        Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
        if(result==null){
            result=Bitmap.createBitmap(size,size,Bitmap.Config.ARGB_8888);
        }
        Canvas canvas=new Canvas(result);
        Paint paint=new Paint();
        paint.setShader(new BitmapShader(squared,BitmapShader.TileMode.CLAMP,BitmapShader.TileMode.CLAMP));
        paint.setAntiAlias(true);
        float r=size/2f;
        canvas.drawCircle(r,r,r,paint);
        return result;
    }
}
  •  在RequestOptions中配置该类

  

RequestOptions options2 = new RequestOptions()
                        .centerCrop()
                        .placeholder(R.mipmap.ic_launcher)//预加载图片
                        .error(R.mipmap.ic_launcher)//加载失败显示图片
                        .priority(Priority.HIGH)//优先级
                        .diskCacheStrategy(DiskCacheStrategy.NONE)//缓存策略
                        .transform(new GlideCircleTransform());//转化为圆形
Glide.with(this).load(imgUrl).apply(options2).into(img1);

显示圆角图片

  • 定义转化圆形的类 继承自BitmapTransforation

  

public class GlideRoundTransform extends BitmapTransformation {

    private static float radius=0f;
    public GlideRoundTransform(){
        this(4);
    }
    public GlideRoundTransform(int dp){
        super();
        this.radius= Resources.getSystem().getDisplayMetrics().density*dp;
    }

    @Override
    protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {
        return roundCrop(pool,toTransform);
    }

    @Override
    public void updateDiskCacheKey(MessageDigest messageDigest) {

    }

    private static Bitmap roundCrop(BitmapPool pool,Bitmap source){
        if(source==null){
            return null;
        }
        Bitmap result=pool.get(source.getWidth(),source.getHeight(), Bitmap.Config.ARGB_8888);
        if(result==null){
            result=Bitmap.createBitmap(source.getWidth(),source.getHeight(), Bitmap.Config.ARGB_8888);
        }
        Canvas canvas=new Canvas(result);
        Paint paint=new Paint();
        paint.setShader(new BitmapShader(source,BitmapShader.TileMode.CLAMP,BitmapShader.TileMode.CLAMP));
        paint.setAntiAlias(true);
        RectF rectF=new RectF(0f,0f,source.getWidth(),source.getHeight());
        canvas.drawRoundRect(rectF,radius,radius,paint);

        return result;
    }
}
  • 在RequestOptions中配置该类
RequestOptions options1 = new RequestOptions()
                        .centerCrop()
                        .placeholder(R.mipmap.ic_launcher)//预加载图片
                        .error(R.mipmap.ic_launcher)//加载失败显示图片
                        .priority(Priority.HIGH)//优先级
                        .diskCacheStrategy(DiskCacheStrategy.NONE)//缓存策略
                        .transform(new GlideRoundTransform(20));//转化为圆角
Glide.with(this).load(imgUrl).apply(options1).into(img1);

时间: 2024-10-06 12:03:17

Glide4.0使用的相关文章

2017上半年技术文章集合【Android】—184篇文章分类汇总

地址: http://blog.csdn.net/androidstarjack/article/details/77923753 声明 | 本文是于亚豪 原创 终端研发部 前言: 2017年已经过大半,公众号里技术文章整理和归类了一下,方便给大家查找和阅读.这也是目前 发文的一个统计. View篇: 高级UI特效之酷炫抢红包金币下落动画 一个超级方面的用户指引view-App实现用户指引就是如此简单 让View像粒子一样自由运动 手把手教你实现RecyclerView实现上拉刷新功能 高级UI

鬃嘴释怀说太多就成真不了。

子阻撞砖奏尊仔籽着 释怀说太多就成真不了. http://passport.baidu.com/?business&un=vip&un=%E5%A4%A9%E6%B0%B4%E4%B8%8A%E9%97%A8%E8%BF%99%E5%B0%8F%E5%A7%90#0 http://passport.baidu.com/?business&un=vip&un=%E7%99%BD%E9%93%B6%E4%B8%8A%E9%97%A8%E8%BF%99%E5%B0%8F%E5%A

澜星粘鼐贩逊耐盼系甭妊倏纪傲傲sdfghjk

http://passport.baidu.com/?business&un=R&un=%E5%A4%A7%E5%AE%81%E6%A1%91%E6%8B%BF%E9%80%9A%E5%B0%8F%E5%A7%90#0 http://passport.baidu.com/?business&un=R&un=%E4%B9%A1%E5%AE%81%E6%A1%91%E6%8B%BF%E9%80%9A%E5%B0%8F%E5%A7%90#0 http://passport.bai

在Ubuntu14.04上OpenStack Juno安装部署

在Ubuntu14.04上OpenStack Juno安装部署 0 安装方式 0.1 安装方式 安装方式 说明 目标 备注 单结点 一台服务器运行所有的nova-xxx组件,同时也驱动虚拟实例. 这种配置只为尝试Nova,或者为了开发目的进行安装.   1控制节点+N个计算节点 一个控制结点运行除nova-compute外的所有nova-services,然后其他compute结点运行nova-compute.所有的计算节点需要和控制节点进行镜像交互,网络交互,控制节点是整个架构的瓶颈. 这种配

2008 SCI 影响因子(Impact Factor)

Excel download 期刊名缩写 影响因子 ISSN号 CA-CANCER J CLIN 74.575 0007-9235 NEW ENGL J MED 50.017 0028-4793 ANNU REV IMMUNOL 41.059 0732-0582 NAT REV MOL CELL BIO 35.423 1471-0072 PHYSIOL REV 35.000 0031-9333 REV MOD PHYS 33.985 0034-6861 JAMA-J AM MED ASSOC 3

使用 IDEA 创建 Maven Web 项目 (异常)- Disconnected from the target VM, address: '127.0.0.1:59770', transport: 'socket'

运行环境: JDK 版本:1.8 Maven 版本:apache-maven-3.3.3 IDEA 版本:14 maven-jetty-plugin 配置: <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <webAppSourceDirectory>${pro

Linux下WebSphereV8.5.5.0 安装详细过程

Linux下WebSphereV8.5.5.0 安装详细过程 自WAS8以后安装包不再区别OS,一份介质可以安装到多个平台.只针对Installation Manager 进行了操作系统的区分 ,Websphere产品介质必须通过专门的工具Install Managere安装.进入IBM的官网http://www.ibm.com/us/en/进行下载.在云盘http://yun.baidu.com/share/linkshareid=2515770728&uk=4252782771 中是Linu

Centos7.2部署.Net Core2.0 WebApi

部署前准备 1.VisualStudio2017+.netcore2.0SDK 2.Centos7.2 3.SecureCRT,Xftp(根据自己喜好) 创建WebApi项目 修改Program.cs中的BuildWebHost方法为(不改也可,core默认使用Kestrel作为Server) public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseKestrel()

Apache Storm 1.1.0 中文文档 | ApacheCN

前言  Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ApacheCN 最近组织了翻译 Storm 1.1.0 中文文档 的活动,整体 翻译进度 为 96%. 感谢大家参与到该活动中来 感谢无私奉献的 贡献者,才有了这份 Storm 1.1.0 中文文档 感谢一路有你的陪伴,我们才可以做的更好,走的更快,走的更远,我们一直在努力 ... 网页地址: