Android加载超长图(微博长图)

作者: 岳小川 | 来源:发表于2016-10-26 17:03 被阅读5922次

对于一些需要加载超长图需求的同学,可能一开始使用使用bitmap或者inputstream转bitmap(或类似加载库)会发现出现图片太大加载不出来的问题(其实我也是遇到了这个问题ヽ(≧Д≦)ノ)。解决问题的思路可以参考Coding_the_world封装自己的库(然而我太菜了,就在网上找了一些开源库),比较流行的是Subsampling Scale Image View,而且里边封装了缩放功能。

实现思路是:使用glide把图片下载到本地(由于我使用的就是glide图片加载库),然后赋值。具体的操作如下:

1.添加依赖

com.davemorrissey.labs:subsampling-scale-image-view:3.5.0

2.具体代码

imageView = (SubsamplingScaleImageView) findViewById(R.id.imageView);

imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CUSTOM);

imageView.setMinScale(1.0F);//最小显示比例

imageView.setMaxScale(10.0F);//最大显示比例(太大了图片显示会失真,因为一般微博长图的宽度不会太宽)

finalString testUrl ="http://cache.attach.yuanobao.com/image/2016/10/24/332d6f3e63784695a50b782a38234bb7/da0f06f8358a4c95921c00acfd675b60.jpg";

//下载图片保存到本地
Glide.with(this)        
    .load(testUrl).downloadOnly(new SimpleTarget<File>() {    
        @Override    
        public void onResourceReady(File resource, GlideAnimation<? super File> glideAnimation) {        
          // 将保存的图片地址给SubsamplingScaleImageView,这里注意设置ImageViewState设置初始显示比例   
          imageView.setImage(ImageSource.uri(Uri.fromFile(resource)), new ImageViewState(2.0F, new PointF(0, 0), 0));    
}});

补充:
鉴于有人说缩放不了,现在我把代码补全,放到了github上,不明白的可以直接下载测试(具体的使用方法还是建议去看Subsampling Scale Image View的使用说明)
subsampling-scale-image-view还可以支持Picasso,传送门

demo github测试地址


推荐一下个人app


qq交流群:138485840
下载地址:微影
github:Ghost
欢迎大家下载和Star

相关文章

  • Android加载超长图(微博长图)

    对于一些需要加载超长图需求的同学,可能一开始使用使用bitmap或者inputstream转bitmap(或类似加...

  • Android自定义View实现加载大长图

    Android加载大长图 一、为什么Android加载图片要进行压缩? Android系统为app分配的内存是有限...

  • Android使用Glide加载超长图

    app项目开发过程中,大都有查看图片详情的功能模块。实现的方式一般都是通过viewpager+photoVie...

  • Android加载长图

    Android系统对加载图片做了一些限制,其中一个就是对Bitmap有最大宽高限制,某些系统的机子的限制不一样,但...

  • Android 长图加载

    1.思考 我们拿到的长图,不可能一下就设置到对应的ImageView中,原因有二:1.图片显示不全2.一次性加载长...

  • Android加载长图方案

    背景介绍 在某些特定场景下,我们需要考虑加载长图的需求,比如加载一幅《清明上河图》,这个好像有点过分了,那就加载1...

  • Android ImageView加载长图

    需求 一个Activity页面纯展示一张长图,看起来功能是简单的,可还是有些坑存在。记录一下。 坑 要做UI适配,...

  • 利用微博当图床-php语言实现

    什么是微博图床? 微博图床,指把图片上传到新浪微博的图库,然后用这个图片外链达到节约本地服务器空间及加快图片加载速...

  • Android开发中实现多图分享

    Android开发中实现多图分享 无需注册,直接微信,朋友圈,微博,qq,qq空间,实现多图及单图分享 所用常量类...

  • 2018-11-07

    Android 加载长图片的自定义控件!解决安卓加载长图出现解码失败导致显示空白的问题! 关于解决超大图片超过bi...

网友评论

    本文标题:Android加载超长图(微博长图)

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