位置: 编程技术 - 正文

一个方便的图片加载框架——ImageViewEx(一个方便的世界作文)

编辑:rootadmin

推荐整理分享一个方便的图片加载框架——ImageViewEx(一个方便的世界作文),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:一个方便的图片怎么画,一个方便的世界作文,方便的图像,一个方便的图片大全,方便的图标,一个方便的图片表情包,一个方便的图片大全,一个方便的图片怎么画,内容如对您有帮助,希望把文章链接给更多的朋友!

我的博客: lib,用起来非常的简单,和 picasso 或者谷歌的 Volley 等都一样,只需要一行代码就能完成图片加载的逻辑。

项目地址:ImageViewEx

项目效果:

二、使用

先给出使用方法:首先在布局文件中加入如下代码:

如果是要使用圆形或者圆角的图片,只需要将 ImageViewEx 改成 RoundImageView 就可以了。

在 Java 代码中,这样写就可以了

三、 原理

先给出类关系图

一个方便的图片加载框架——ImageViewEx(一个方便的世界作文)

使用方式非常简单,现在大概来分析一下这个框架的原理:

框架的加载方式主要还是通过 http 请求的 get 方式拿到图片,然后将其保存在 SD 卡中,将 SD 卡中的图片转化为 Bitmap 对象,通过 LruMemoryCache 缓存方式存到内存中。并将其加载到对应 View 上去。

主要类就是 ImageViewEx 和 ImageLoader 了

1、 ImageViewEx.java

这个类的主要功能就是设置加载时的默认图片,调用ImageLoader 类的loadImageAsync进行加载图片,对加载完成后的回调进行处理。都在loadImage(url)中体现了:

2、 ImageLoader.java

使用最大运行内存的十六分之一作为 LruMemoryCache 的缓存大小,如果超过了这个大小,系统会自动将其释放掉。

在加载的过程中,线程池可以开启的最多任务数为 MAX_BLOCK_QUEUE_SIZE 个,balanceTasks()这个方法,保证了队列的最大任务数:

在内部类 LocalTask 中进行加载的逻辑,主要看 run() 方法,先根据 url 拿到 SD 卡中的存储路径pathName,将 pathName 解析成 Bitmap 对象,如果不为 null 表示 SD 卡中有该图片,直接取 SD 卡中的图片,否则删除这个文件,并通过 HttpRequestGet 去下载该图片,下载完成后会回调 requestFinished 方法,并调用 notifySuccess 方法,注意,不管成功还是失败,都需要将其从任务队列 mTaskQueue 中删除。

3、 HttpRequestGet.java

get 请求成功后,创建文件路径,将请求到的数据存储到文件中,通知回调成功或者失败的结果。

4、 RoundImageView.java

这个类就比较简单了,继承自 ImageViewEx,功能是 设置圆形图片,主要就是重写了 onDraw(canvas); 方法,在这个方法里调用了 Canvas 的 drawRoundRect 方法。注意,如果要设置成圆角图片 则需要调用 setConer(x,y); 如果不调用表示圆形图片:

基本的就是这样,框架其实很简单,将其抽取出来作为一个框架来用的话,还是很方便的。对了如果要显示下载进度,只需要调用 HttpGetProgressCallback 接口就可以了,这个可以自己去封装,我就不搞了,哈哈,后期如果有这个需求可以考虑加上。嗯。。。后面再更新吧。

KopDB 框架学习2——源码分析 我的博客:

android自定义属性三部曲 我们在开发中经常需要为了保持应用在不同的移动设备平台下显示统一的UI风格,毕竟各个平台厂商针对界面风格进行自定义导致UI风格千变万化。所以

android TabHost小结 转载:TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout。TabWidget就是每个tab的标签,FrameLayout则是tab内容。1、如果我们使用extendsTabAcitivty,如同Li

标签: 一个方便的世界作文

本文链接地址:https://www.jiuchutong.com/biancheng/385944.html 转载请保留说明!

上一篇:android数据存储读取1:SharedPreferences(对比IOS)(android数据存储与访问的方式有)

下一篇:KopDB 框架学习2——源码分析(kraken框架)

  • 哪些情况下可以无偿提供法律援助
  • 免税收入进项税额转出比例结转法
  • 没有达到30万销量怎么办
  • 每年税控盘维护费会计分录
  • 应付票据是资产吗
  • 物料损失怎么入账
  • 职工教育经费怎么花
  • 公告费交了以后能否撤销
  • 应付债券利息调整科目理解
  • 持有债券到期收到现金属于什么活动
  • 公益捐赠税前扣除凭证
  • 收到的发票开票人是管理员,这样可以吗?
  • 关于医疗服务质量的医疗服务要素
  • 公司注销资产负债表期末余额不能为0
  • 新三板企业转主板条件
  • 公司买空调开具的进项发票可以抵扣吗?
  • 房地产企业预付账款为负数
  • 医院会计制度准则
  • 视同销售收入计入会计利润中吗
  • 现金流量表的编制原则为( ),是( )的概念
  • 户外拓展费用入什么科目
  • 新公司第一年
  • 网络服务费一般纳税人几个点
  • Win10怎么关闭搜索框
  • 获取 获得
  • 土地增值税清算方法与技巧
  • 树木种植公司
  • 劳务外包开什么样的发票
  • 组策略在哪里
  • gnu/linux
  • 开办费的账务处理实例
  • 财务工作中如何用进销存软件
  • 境外服务包括哪些内容
  • 海关专用缴款书认证的步骤和说明
  • 债券利息调整怎样计算
  • phpmyadmin版本
  • php获取并显示用户的用户名
  • 科目余额表和资产负债表的金额不一致的原因
  • php strncmp
  • 深度学习实战(十):使用 PyTorch 进行 3D 医学图像分割
  • zend框架教程
  • 网上学电脑的软件
  • 个体开发票额度
  • 发票税额打印不全可以入账吗
  • 多付款退回怎样写说明
  • 事业单位成本核算具体指引—公立医院
  • 发票行业税目怎么选
  • 印花税只能到角吗
  • 外购商品职工福利进项税额转出如何记账?
  • 代扣代缴个人所得税账务处理
  • 母公司和子公司是什么关系
  • 工程施工怎么结转,用友自动结转吗
  • 预付账款摊销会计分录
  • 劳务外包存在的法律风险
  • 农产品成本包含所消耗的物资费用
  • 360天认证期是什么时候发布的
  • 长期借款的利息费用计入什么科目
  • 应交税费应交印花税贷方余额
  • 什么是资产处置收益
  • 固定资产清理是资产吗
  • 会计账本是一年一本吗
  • 惠普台式笔记本一体机电脑bios中文
  • w10运行命令在哪
  • 安装完xp系统直接黑屏怎么办
  • win7系统怎么用无线接收器怎么用
  • win8系统远程桌面在哪里
  • win7电脑磁盘突然不见了怎么办
  • jquery插件是干什么的
  • 支持向量机
  • unity的脚本
  • linux查看内存型号与数量
  • unity gui教程
  • &&在js中
  • node.js适用哪些场景
  • jquery隐藏和显示div
  • 如何查询车辆购买的保险
  • 苏州峰谷电怎么申请
  • 打印缴纳社保电子缴税凭证
  • 加计扣除为什么是税收优惠
  • 外地人在上海奉贤区买房需要什么条件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设