Glide加载大图长图
这里用的Glide是4.11.0的
第一种方法:
Glide.with(activity).load(yourUrl).asBitmap().into(new SimpleTarget<Bitmap>(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) {@Overridepublic void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {int imageWidth = resource.getWidth();int imageHeight = resource.getHeight();int height = ScreenUtils.getScreenWidth() * imageHeight / imageWidth;ViewGroup.LayoutParams para = imageView.getLayoutParams();para.height = height;para.width = ScreenUtils.getScreenWidth();imageView.setImageBitmap(resource);}});
上面这个是主要加载长图或者大图的,这里SimpleTarget《Bitmap》 可以不用传参数直接空构造就好了为啥?
/*** Constructor for the target that uses {@link Target#SIZE_ORIGINAL} as the target width and* height.*/// Public API.@SuppressWarnings("WeakerAccess")public SimpleTarget() {this(SIZE_ORIGINAL, SIZE_ORIGINAL);}
glide源码已经设置了初始默认值了,设置了也没有关系
布局:
<androidx.core.widget.NestedScrollViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:fillViewport="true"app:layout_constraintTop_toBottomOf="@+id/constraint_head"><androidx.appcompat.widget.AppCompatImageViewandroid:id="@+id/img_content"android:adjustViewBounds="true"android:layout_marginBottom="@dimen/dp50"android:layout_width="match_parent"android:layout_height="wrap_content" /></androidx.core.widget.NestedScrollView>
仔细看布局,
android:fillViewport="true"
这个方法是nestedscrollview布局不能铺满问题所致
还有一个属性:
android:adjustViewBounds="true"
这个方法是防止有空白出现问题
这个基本可以实现了,但可能图片显示会有问题,因为你不知道会出现什么样的图片,比如,宽高都大于屏幕的大小,这个时候你要进行计算了。这里因为通过glide的几级缓存,已经被压缩过了,有点模糊,之后会有其他的方法,后续补充。
第二种方法:
在后面我找到了一个更好的方法是加载的图片没有上个模糊,并且还要简单一点代码贴上:
val requestOptions = RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL).override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL) //关键代码,加载原始大小.format(DecodeFormat.PREFER_RGB_565) //设置为这种格式去掉透明度通道,可以减少内存占有.placeholder(R.drawable.img_error).error(R.drawable.img_error)Glide.with(context).setDefaultRequestOptions(requestOptions).load(url).into(target)
android开发使用Glide加载图片模糊不清的解决方法
第三种就是三方库了
https://github.com/davemorrissey/subsampling-scale-image-view
这里没有用过,需要自己去实现了
Glide加载大图长图相关推荐
- Android 加载超大长图及原理
Android 加载超大长图及原理 我们在开发中偶尔会遇到加载超大长图,类似于微信n多页聊天记录截图加载.但这类图片一般都会很大,几兆.十几兆.甚至几十兆,很容易造成内存溢出,今天笔者给大家提供一个可 ...
- Android 图片预览器加载微博长图,大图
通常图片预览的做法是ViewPager+PhotoView,但是遇到很长的图(比如微博长图),在设置 android:scaleType="centerCrop" 这个属性的前提下 ...
- Glide 加载webp动图
前提 公司新需求要求视频封面加载动图,但是由于Gif上传的图片过大,所以为了节省开销,对图片进行了处理,最后给到客户端的是webp格式的图片链接. 1.验证webp格式的图片链接是否是动图,测试时,将 ...
- android 加载大长图,android加载长图片的方法
1.很多应用都有加载一张长图片,用户可以上下拉动图片. 自己没有好的想法,那只好百度咯.结果都说用webview来实现,好吧那就只好先试一下了. 2.自己写了简单的html,然后webview加载.图 ...
- android加载长图宽度自适应,Android使用Glide加载超长图
app项目开发过程中,大都有查看图片详情的功能模块.实现的方式一般都是通过viewpager+photoView+Glide的方式.这种方式下,如果碰到加载超长图,比如说高清版的清明上河图/世界地图, ...
- Glide 加载圆形头像和gif 图
首先到github 上搜索glide 看看版本号 目前是 implementation 'com.github.bumptech.glide:glide:4.9.0'annotationProcess ...
- Android高效加载大图、多图解决方案,有效避免程序内存溢出现象
好久没有写博客了,今天就先写一个小的关于在Android中加载大图如何避免内存溢出的问题. 后面会写如何使用缓存技术的核心类,android.support.v4.util.LruCache来加载图片 ...
- Glide加载常用类型图片(带白色边框的圆形图、圆角矩形图片、圆形图片)
一:依赖包: Glide_github implementation 'com.github.bumptech.glide:glide:4.8.0' annotationProcessor 'com. ...
- Android开发笔记(一百七十一)使用Glide加载网络图片
如何方便而又快速地显示网络图片,一直是安卓网络编程的热门课题,前些年图片缓存框架Picasso.Fresco等等大行其道,以至于谷歌按捺不住也开发了自己的Glide开源库.由于Android本身就是谷 ...
最新文章
- 烂泥:mysql数据库使用的基本命令
- 互联网晚报 | 4月13日 星期三 | 阿里云人事大变动;老坛酸菜方便面重返超市货架;工信部:加快5G全连接工厂建设...
- C#删除字符串最后一个字符的几种方法
- python常用第三方库(转载)
- 【概率论与数理统计】小结8 - 三大抽样分布
- VisualStudio VC redist各版本下载链接
- 转:短小强悍的JavaScript异步调用库
- win2008Server 部署网站
- 信息 按顺序打印commit_风火快递单打印软件按导入数据顺序批量打印,但打出来的顺序和导入的表格里的?...
- zabbix 使用教程
- 皇后谜题Python
- MAC主机eclipse连接parallels内win7虚拟机oracle
- 虚幻4引擎2d游戏基础
- excel如何打开100万行以上的csv文件
- 如何在终端里面使用ping来查局域网活动ip
- Photoshop(4)做海报的心得
- Electron主进程与渲染进程相互通信
- 2020考研,老学长帮你规划
- ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
- 火狐浏览器打不开,但是进程中有,怎么办?