2019独角兽企业重金招聘Python工程师标准>>>

需求:做项目的时候有一个需求:利用从网上加载图片到手机并且要调整成为自适应手机屏幕大小。

我用的是Picasso包来加载图片,picasso是一个非常优秀的图片处理包,下载地址如下:http://square.github.io/picasso/   。用picasso来加载图片我们只需要一部就可以搞定:

ImageView imageView = (ImageView) view.findViewById(R.id.iv_image_browser);.

RequestCreator requestCreator= Picasso.with(view.getContext()).load(IPConfig.URL+orderUrlList.get(position));

requestCreator.resize(200,200).placeholder(R.drawable.image_loding).error(R.drawable.image_error).into(imageView);

通过这几个步骤我们就可以把我们的图片加载进我们的imageView中

方法说明 :with(Context context) :  告诉Picasso我们需要加载图片的页面是哪个context。 必须

load(String path):用于下载图片。必须

resize(int width,int height):用于设置图片的宽高。不必须

placeholder(int ResId):当图片正在加载的时候显示的图片。不必须

error(int ResId):图片加载失败时显示的图片。不必须

into(ImageView imageview): 把图片显示在指定控件上。必须

效果图:

楼主是把图片放在gradview中加载的。

之后又有一个需求就是我的每个item都设置了点击事件,当点击了会跳转进一个viewpager中浏览图片,浏览图片时我需要让其适应手机屏幕大小,显然 resize这方法现在不适用了,在网上找了一下发现有个transform方法他可以自定义显示图片,transform里面需要传一个实施了Transform接口的类,源码如下:

ImageView imageView = (ImageView) view.findViewById(R.id.iv_image_viewpager_browser); RequestCreator requestCreator = Picasso.with(view.getContext()).load(IPConfig.URL+arrayList.get(position)); requestCreator.transform(new MyTransfomation()).into(imageView);
private class MyTransfomation implements Transformation{@Override  public Bitmap transform(Bitmap bitmap) {double ratio = bitmap.getHeight()/ bitmap.getWidth();  screenHeight = (int)(screenWidth*ratio);  Bitmap newBitMap = Bitmap.createScaledBitmap(bitmap, screenWidth, screenHeight, true);  bitmap.recycle(); //这要回收一下 不然会抛出异常  return newBitMap;  }@Override  public String key() {return "square()";  }
}

需要注意的是 screemWidth是屏幕宽度。  创建了一个新的bitmap的时候,之后以前的bitmap需要回收不然会报错,key()方法返回的必须是"square()"。

转载于:https://my.oschina.net/u/2505383/blog/634104

android高效加载网络图片相关推荐

  1. Android高效加载大图、多图解决方案,有效避免程序内存溢出现象

    好久没有写博客了,今天就先写一个小的关于在Android中加载大图如何避免内存溢出的问题. 后面会写如何使用缓存技术的核心类,android.support.v4.util.LruCache来加载图片 ...

  2. Android高效加载大图、多图解决方案,有效避免程序OOM

    高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状.不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小.比如说系统图片库里展示的图片大都是 ...

  3. Android高效加载大图、多图解决方案_LruCache,有效避免程序OOM

    本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/training/displaying ...

  4. Android Glide加载网络图片不显示,但用网页打开又正常显示

    前言 最近做Demo比较多,之前在搭网络框架的时候遇到了图片加载的问题,因为我以前的框架中加载网络图片是没有问题,这次居然出问题,但是其实也不难解决吧. 异常问题 报错有两个 ① Failed to ...

  5. android studio 加载图片,Android Studio 加载网络图片

    Android Studio是基于gradle的一个Android开发软件,在引用网络图片的时候需要连接第三方库,这里介绍 引用glide的方法. 一.在github页面搜索glide,点击第一个 二 ...

  6. Android slider加载网络图片的框架

    android中使用slider加载网络图片,众所周知,在开发App的时候,差不多每个app的主页面的搭建都少不了广告轮播,广告轮播,我们可以手动轮播,也可以让其自动轮播,这都是可以的,当我们使用Vi ...

  7. Android Studio 加载网络图片

    Android Studio是基于gradle的一个Android开发软件,在引用网络图片的时候需要连接第三方库,这里介绍 引用glide的方法. 一.在github页面搜索glide,点击第一个 二 ...

  8. Android 高效加载大图片

    来源:http://www.open-open.com/lib/view/open1389755918242.html 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状 ...

  9. android studio调用图片,Android studio加载网络图片_Glide

    AndroidManifest添加网络权限: AndroidManifest添加网络安全配置文件:android:networkSecurityConfig="@xml/network_se ...

最新文章

  1. 实例化servlet的几种方式
  2. mask-conditional contrast-GAN
  3. 华人首位!清华学子尤洋 荣升新加坡国立大学“校长青年教授”
  4. Chrome 浏览器提示adobe flash player不是最新版本
  5. [导入]ASP.NET 2.0中Page事件的执行顺序
  6. 阿里云主机(aliyun-Linux) x64安装Redis详解
  7. 对大文件进行只打印过滤条件到列表元素(优化)
  8. 最短寻道时间优先算法c语言程序,操作系统先来先服务、最短寻道时间优先(SSTf)、扫描算法(SCAN)、循环扫描算法(CSCAN)的c++实现.doc...
  9. P3924 康娜的线段树
  10. java day21【缓冲流、转换流、序列化流】
  11. Java版通用身份证验证
  12. linux下连接mysql数据库命令,linux连接mysql命令
  13. Bugku CTF 每日一题 想蹭网先解开密码
  14. it培训机构包就业是啥套路?it培训骗局,it培训班学出来有用吗?
  15. Flink在监控流计算中的应用
  16. 服务器双向同步文件,lsyncd配置两台服务器文件双向实时同步
  17. 生成扩散模型漫谈:DDIM = 高观点DDPM
  18. JZOJ. 5421【NOIP2017提高A组集训10.25】嘟嘟噜
  19. 达梦DCA学习笔记202004
  20. 从经济学看IT厂商为何争着向云计算厂商转型?

热门文章

  1. 随时牵手,不要随意分手
  2. 算法分析之-渐进记号
  3. DAY9-字符串笔记整理2018-1-19
  4. 云计算如何对传统软件交付方式产生影响
  5. GitLab公布关于开发者趋势的问卷调查结果
  6. nginx学习七 高级数据结构之动态数组ngx_array_t
  7. H5进阶篇--实现微信摇一摇功能
  8. Microsoft Dynamics CRM 2015 数据管理 之 如何批量导入数据到 正式区(二)系统自带示例数据 安装及教学...
  9. 如何使盘ISO图像文件
  10. openais的前世今生