{Android}一行代码起飞,2021 年百度 Android 面试真题
Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);}
// For a simple image list:@Override publ
ic 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).into(myImageView);
return myImageView;}//不使用它的默认动画 Glide.with(mContext).load(url).dontAnimate().placeholder(R.drawable.loading_spinner).into(circleImageview);
提示:不要再非主线程里面使用 Glide 加载图片,如果真的使用了,请把 context 参数换成 getApplicationContext
3.加载 GIF
如果只是简单加载 gif,其实跟加载普通图片一样
Glide.with(this).load(mGifUrl).placeholder(R.mipmap.place).error(R.mipmap.icon_photo_error).into(mIv);
如果希望加载 gif 时只加载 gif 的第一帧,把 gif 当作普通图片一样加载,那么只需要加上 asBitmap 方法即可
Glide.with(this).load(mGifUrl).asBitmap().placeholder(R.mipmap.place).error(R.mipmap.icon_photo_error).into(mIv);
如果你希望加载的只是 gif,如果不是 gif 就显示错误图片,那么只用加上 asGif 方法即可
Glide.with(this).load(mGifUrl).asGif().placeholder(R.mipmap.place).error(R.mipmap.icon_photo_error).into(mIv);
网络上很多文章上都是从一篇译文里面拷贝过来的,里面说 Glide 可以加载本地视频,但是那篇译文漏翻译一句了,Glide 只会加载本地视频的第一帧,也就是缩略图,而且其实加载缩略图的时候也无需转化为 Uri,直接把 File 丢进去就行了
mVideoFile = new File(Environment.getExternalStorageDirectory(), "xiayu.mp4");
Glide.with(this).load(mVideoFile).placeholder(R.mipmap.place).error(R.mipmap.icon_photo_error).into(mIv);
在大多数情况下,当你使用 diskCacheStrategy(DiskCacheStrategy.SOURCE)时,Gif 的加载速度会显着提高(其实就是把 gif 资源缓存到磁盘)->可以解决 gif 加载慢或加载不出来的情况(NONE 是不缓存数据,SOURCE 是缓存原型,原图)
Glide.with(this).load(mGifUrl).diskCacheStrategy(DiskCacheStrategy.SOURCE).placeholder(R.mipmap.place).error(R.mipmap.icon_photo_error).into(mIv);
动态显示 gif 图的次数,比如我想显示一次 gif 就停止
Glide.with(this).load("url").diskCacheStrategy(DiskCacheStrategy.SOURCE).into(new GlideDrawableImageViewTarget(iv, 1));
这里的 GlideDrawableImageViewTarget(ImageView view, int maxLoopCount)这个方法,maxloopCount 可以控制显示次数。
二、Glide 加载 gif 优化
**1.**解决 Glide 加载 Gif 非常慢问题
Glide.with(MainActivity.this).load(url).asGif().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(imageView);
为其添加缓存策略,其中缓存策略可以为:Source 及 None,None 及为不缓存,Source 缓存原型.如果为 ALL 和 Result 就不行
**2.**加载第一贞:
Glide.with(context).load(gifUrl).asBitmap().into(imageViewGifAsBitmap);
**3.**控制动画次数:
Glide.with(this).load(getResource()).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(new GlideDrawableImageViewTarget(imageView, 1));
**4.**GIF 时间:
Glide.with(FirstActivity.this)
评论