美文网首页Android开发
关于Glide这些你可能还不知道

关于Glide这些你可能还不知道

作者: ztzt123 | 来源:发表于2018-02-26 16:27 被阅读1636次

    Glide

    crossFade() 
    

    图片的渐隐渐现动画3.6.1以上默认开启

    dontAnimate()
    

    关闭动画

    glide
    支持centerCrop() 和 fitCenter() 两种转换方式。

    String filePath = "/storage/emulated/0/Pictures/example_video.mp4";
    load( Uri.fromFile( new File( filePath ) ) )
    

    支持加载本地视频文件,不支持网络视频加载。

    skipMemoryCache( true )
    

    加载不进入缓存,但要注意作用只是不进入内存缓存,但是仍然会使用硬盘缓存。

    diskCacheStrategy()
    

    可以通过这个方法改变Glide的硬盘缓存方式。

    DiskCacheStrategy.NONE 表示不进行缓存。

    DiskCacheStrategy.SOURCE 只缓存网络加载来的图片

    DiskCacheStrategy.RESULT 只缓存处理后降低了分辨率的图片。

    DiskCacheStrategy.ALL 处理前后全部缓存

    Glide加载图片可以指定优先级,通过priority()
    总共分为四个等级,从上到下依次递增。

    • Priority.LOW
    • Priority.NORMAL
    • Priority.HIGH
    • Priority.IMMEDIATE

    Glide支持缩略图,即先从网络加载较小尺寸的图片占位,再等原图加载完成后替换,使用如下

    thumbnail( 0.1f )
    

    0.1f表示以原图10%的大小作为缩略图,如果原图的尺寸是10001000px,那么我们加载的预览图大小就是100100px,加载的图片会比imageVie尺寸小,请注意ScaleType。

    缩略图也可以使用不同的网络请求

        // setup Glide request without the into() method
        DrawableRequestBuilder<String> thumbnailRequest = Glide
            .with( context )
            .load( eatFoodyImages[2] );
    
        // pass the request as a a parameter to the thumbnail request
        Glide
            .with( context )
            .load( UsageExampleGifAndVideos.gifUrl )
            .thumbnail( thumbnailRequest )
            .into( imageView3 );
    

    当然也可以在缩略图上做一些转换,也可以在缩略图上再增加缩略图。

    Gilde可以使用Target获取响应回调,拿到Bitmap,也可以增加尺寸。

    private SimpleTarget target = new SimpleTarget<Bitmap>(250,250) {  
        @Override
        public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation) {
            // do something with the bitmap
            // for demonstration purposes, let's just set it to an ImageView
            imageView1.setImageBitmap( bitmap );
        }
    };
    
    private void loadImageSimpleTarget() {  
        Glide
            .with( context ) // could be an issue!
            .load( eatFoodyImages[0] )
            .asBitmap()
            .into( target );
    }
    

    Glide可以进行BitMap转换,可供使用的方法有两个,

       transform( new BlurTransformation( context ) )
       bitmapTransform( new BlurTransformation( context ) )
    

    transform可以传入多个转换,依次进行。
    Glide为我们提供了常用的Bitmap转换,我们需要在gradle中添加

    compile 'jp.wasabeef:glide-transformations:2.0.0'
    

    如果我们想使用GPU transformation包含其他的一些BitMap转换可以添加

    compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.3.0'
    

    具体的使用效果可以参考glide-transformations

    基本的转换包含四类:

    (1)裁剪

    • CropTransformation: 传入的宽高和裁剪类型,裁剪类型包括TOP,CENTER,BOTTOM。
    • CropCircleTransformation:将图片裁剪为圆形。
    • CropSquareTransformation:将图片裁剪为方形。
    • RoundedCornersTransformation:图片裁剪为圆角,具体裁剪哪个角通过CropType控制。

    (2)颜色过滤器

    • ColorFilterTransformation 通过传入带有透明度的颜色,改变图片的主色调。
    • GrayscaleTransformation 将图片变成黑白照片。

    (3)模糊

    • BlurTransformation 具体的模糊程度根据radius控制

    (4)遮罩

    • MaskTransformation 根据传入的maskId的图片形状,改变原图的形状。

    我们也可以定义自己的Transformation,实现方法请参照以上几种已经实现的转换。

    Glide并不强制要求使用自带的网络请求方式,实现ModelLoader,Glide提供了两种网络请求库的实现方式:分别是OkHttp和Volley。

    OkHttp 2

    // Glide
    compile 'com.github.bumptech.glide:glide:3.7.0'
    
    // Glide's OkHttp2 Integration 
    compile 'com.github.bumptech.glide:okhttp-integration:1.4.0@aar'
    compile 'com.squareup.okhttp:okhttp:2.7.5'
    

    Glide会自动将GlideModule合并到你的Android.Manifest,Glide所有的网络请求将通过OkHttp。

    Volley

    // Glide
    compile 'com.github.bumptech.glide:glide:3.7.0'
    
    // Glide's Volley Integration 
    compile 'com.github.bumptech.glide:volley-integration:1.4.0@aar'
    compile 'com.mcxiaoke.volley:library:1.0.8'
    

    Glide使用Volley,注意实现方式只能声明一个。

    OkHttp 3

    // Glide
    compile 'com.github.bumptech.glide:glide:3.7.0'
    
    // Glide's OkHttp3 Integration 
    compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
    compile 'com.squareup.okhttp3:okhttp:3.2.0'
    

    Glide使用okHttp3。

    自定义GlideModule请参考Customize Glide with Modules

    相关文章

      网友评论

        本文标题:关于Glide这些你可能还不知道

        本文链接:https://www.haomeiwen.com/subject/trvyxftx.html