glide的基本使用

 //推荐文章 

http://mrfu.me/2016/02/27/Glide_Request_Priorities/
http://www.lai18.com/content/2505937.html

http://blog.csdn.net/richiezhu/article/details/46968569

//Glide的特点

Glide:Google推荐的图片加载库,专注于流畅的滚动
属性
thumbnail()简单的缩略图:
//Glide的基本实现方法
  Glide  
      .with( context )
      .load( UsageExampleGifAndVideos.gifUrl )
      .thumbnail( 0.1f )
      .into( imageView2 );

      你传了一个 0.1f 作为参数,Glide 将会显示原始图像的10%的大小。如果原始图像   有1000x1000 像素,那么缩略图将会有 100x100 像素。因为这个图像将会明显比   ImageView 小很多,你需要确保它的 ScaleType 的设置是正确的。 
      
priority()优先级:


  填的枚举参数分别为:


    Priority.LOW  最低


    Priority.NORMAL  正常


    Priority.HIGH  高


    Priority.IMMEDIATE 最高


跳过磁盘缓存diskCacheStrategy():


   你可以用 .diskCacheStrategy() 方法为 Glide 改变磁盘缓存的行为。不同的于 .skipMemoryCache() 方法,它需要一个枚举而不是一个简答的布尔值。如果你想要为一个请求禁用磁盘缓存。使用枚举 DiskCacheStrategy.NONE 作为参数


自定义磁盘缓存:


  枚举参数有:


    DiskCacheStrategy.NONE 什么都不缓存,就像刚讨论的那样


    DiskCacheStrategy.SOURCE 仅仅只缓存原来的全分辨率的图像。在我们上面的例子    中,将会只有一个 1000x1000 像素的图片


    DiskCacheStrategy.RESULT 仅仅缓存最终的图像,即,降低分辨率后的(或者是转换后的)


    DiskCacheStrategy.ALL 缓存所有版本的图像(默认的)


内存缓存skipMemoryCache:


   我们调用了 .skipMemoryCache(true) 去明确告诉 Glide 跳过内存缓存。这意味着 Glide 将不会把这张图片放到内存缓存中去。这里需要明白的是,这只是会影响内存缓存!Glide 将会仍然利用磁盘缓存来避免重复的网络请求。


asBitmap():


   将Gif 转为 Bitmap


asGif():


  Gif 检查属性


FitCenter:


    fitCenter() 是裁剪技术,即缩放图像让图像都测量出来等于或小于 ImageView 的边界范围。该图像将会完全显示,但可能不会填满整个 ImageView
CenterCrop:


    CenterCrop()是一个裁剪技术,即缩放图像让它填充到 ImageView 界限内并且侧键额外的部分。ImageView 可能会完全填充,但图像可能不会完整显示


override(w,h):


    加载时给图片设置宽高


dontAnimate():


    取消动画属性调用以后将没有任何动画


crossFade():


    淡入淡出属性动画默认的持续时间是 300毫秒比如crossFade(3000)代表动画时间3秒


error:


    错误占位符比如加载出错等设置出错默认图片比如error(R.mipmap.future_studio_launcher) 


placeHolder():


   占位属性内部可以设置默认图片比如placeholder(R.mipmap.ic_launcher)


load(String imageUrl) :


   这里你可以指定哪个图片应该被加载,同上它会是一个   字符串的形式表示一个网络图片的 URL


into(ImageView targetImageView) :


   你的图片会显示到对应的 ImageView 中。


列子:


  ImageView targetImageView = (ImageView) findViewById(R.id.imageView);
  String internetUrl = "http://i.imgur.com/DvpvklR.png";


  Glide
      .with(context)
      .load(internetUrl)
      .into(targetImageView);


从资源中加载:


 地址用ID代替:
    int resourceId = R.mipmap.ic_launcher;


    Glide
        .with(context)
        .load(resourceId)
        .into(imageViewResource);


从文件中加载:




    File file = new File(Environment.getExternalStoragePublicDirectory    (Environment.DIRECTORY_PICTURES), "Running.jpg");


    Glide
        .with(context)
        .load(file)
        .into(imageViewFile);


一个小助手功能:简单的从资源 id 转换成 Uri:


    public static final String ANDROID_RESOURCE = "android.resource://";
    public static final String FOREWARD_SLASH = "/";


    private static Uri resourceIdToUri(Context context, int resourceId) {
           return Uri.parse(ANDROID_RESOURCE + context.getPackageName() +        FOREWARD_SLASH + resourceId);
    }


显示本地视频


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


释放资源
Glide.get(MainActivity.this).clearDiskCache();
Glide.get(MainActivity.this).clearMemory();


加在圆形图片:
一、
public static class CircleTransform extends BitmapTransformation {
    public CircleTransform(Context context) {
        super(context);
    }


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


    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;


        // TODO this could be acquired from the pool too
        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;
    }


    @Override public String getId() {
        return getClass().getName();
    }

二、
final ImageView img= (ImageView) findViewById(R.id.img);
        Glide.with(this).load(path).asBitmap().fitCenter().diskCacheStrategy(DiskCacheStrategy.SOURCE)


                .placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher)


                .into(new BitmapImageViewTarget(img) {


            @Override
            protected void setResource(Bitmap resource) {


                RoundedBitmapDrawable circularBitmapDrawable =


                        RoundedBitmapDrawableFactory.create(getResources(),resource);
//圆角
circularBitmapDrawable.setCornerRadius(30L);
//圆形 
                circularBitmapDrawable.setCircular(true);
//深浅度
circularBitmapDrawable.setAlpha(100);
                img.setImageDrawable(circularBitmapDrawable);


            }


        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值