写点什么

{Android}一行代码起飞,2021 年百度 Android 面试真题

用户头像
Android架构
关注
发布于: 刚刚

Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);}


// For a simple image list:@Override publ


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


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)

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
{Android}一行代码起飞,2021年百度Android面试真题