android开发 加载大图,Android加载超长图(微博长图)

对于一些需要加载超长图需求的同学,可能一开始使用使用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);

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

finalFile downDir = Environment.getExternalStorageDirectory();//下载图片保存到本地Glide.with(this)

.load(testUrl)

.asBitmap()

.into(new SimpleTarget() {

@Override        public void onResourceReady(Bitmap resource,

GlideAnimation super Bitmap> glideAnimation) {

File file = new File(downDir, "/da0f06f8358a4c95921c00acfd675b60.jpg");            if (!file.exists()) {                try {

file.createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

}

FileOutputStream fout = null;            try {                //保存图片

fout = new FileOutputStream(file);

resource.compress(Bitmap.CompressFormat.JPEG, 100, fout);                // 将保存的图片地址给SubsamplingScaleImageView,这里注意设置ImageViewState设置初始显示比例

imageView.setImage(ImageSource.uri(file.getAbsolutePath()), new ImageViewState(0.5F, new PointF(0, 0), 0));

} catch (FileNotFoundException e) {

e.printStackTrace();

} finally {                try {                    if (fout != null) fout.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

});

个人app 效果图

af8e6fe303329a48901e5b8b479fdaae.png

下载地址:微影

github:Ghost

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值