Android中加载长图的策略(微博的那种)
2016-10-28 16:44
1296 查看
Android中加载上图的方法
对于一些需要加载超长图需求时,可能一开始使用使用bitmap或者inputstream转bitmap(或类似加载库)会发现出现图片太大加载不出来的问题。
解决问题的思路可以参考Coding_the_world封装自己的库(然而我太菜了,就在网上找了一些开源库),比较流行的是Subsampling Scale Image View,而且里边封装了缩放功能。
实现思路是:使用glide把图片下载到本地(由于我使用的就是glide图片加载库),然后赋值。具体的操作如下:
1.在gradle文件中添加依赖
2.在具体代码中的配置
对于一些需要加载超长图需求时,可能一开始使用使用bitmap或者inputstream转bitmap(或类似加载库)会发现出现图片太大加载不出来的问题。
解决问题的思路可以参考Coding_the_world封装自己的库(然而我太菜了,就在网上找了一些开源库),比较流行的是Subsampling Scale Image View,而且里边封装了缩放功能。
实现思路是:使用glide把图片下载到本地(由于我使用的就是glide图片加载库),然后赋值。具体的操作如下:
1.在gradle文件中添加依赖
compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.5.0' compile 'com.github.bumptech.glide:glide:3.7.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<Bitmap>() { @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(); } } } });
相关文章推荐
- Android仿微博加载长图滚动查看效果
- Android加载超长图(微博长图)
- Android加载长图,仿微博长图滚动查看
- Android 图片预览器加载微博长图,大图
- Android 微博长图加载
- android,微信,人人,<android 无标题栏 >微博开机加载一幅图片,再跳转到主应用的实现
- Android实现微博下拉刷新上拉加载更多功能
- Android第三方异步网路加载库AsyncHttpClient内部实现缓存策略了吗? 转载请注明出处:http://blog.csdn.net/zhangphil Android第三方异步网
- Android中的缩略图加载的内存优化策略
- 学习开发新浪微博android客户端的一些事儿---刷新微博与加载更多微博
- Android加载大图的优化策略
- Android高效加载图片和缓存策略LRU,DiskLRU
- android网络开源框架volley(四)——谈谈图片加载续——九张图片相册的展示(微信微博等)
- Android第三方异步网路加载库AsyncHttpClient内部实现缓存策略了吗?
- Android 加载长图
- 运用单例模式、建造者模式和策略模式实现异步加载Android联系人资料
- Android:仿微博Listview与多线程功能(JSON、数据下载、图片加载、Listview、异步任务)
- 学习开发新浪微博android客户端的一些事儿---刷新微博与加载更多微博
- Android加载长图那些事
- Android:仿微博Listview与多线程功能(JSON、数据下载、图片加载、Listview、异步任务)