位置: 编程技术 - 正文

一个方便的图片加载框架——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框架)

  • 应纳税额与应纳税所得额的比率
  • 增值税是价内税,消费者是税款的最终负担者( ) A对 B错
  • 利息费用如何在记账软件输入
  • 福利企业的税收优惠政策
  • 煤矿企业维简费税务规定
  • 在建工程领用原材料的账务处理
  • 计提本月工会经费计提基数
  • 简单征收的进项税额怎么调出来?
  • 公司土地和厂房可以按折价卖结股东权益吗
  • 企业销售商品的业务有什么特点
  • 朋友挂靠公司社保
  • 小规模企业差额征收税率
  • 有形动产租赁印花税税率是多少
  • 个税什么情况可以不用汇算
  • 公办幼儿园食堂21项制度
  • 人力资源外包服务收费标准
  • 个人独资企业股权能出让吗
  • 实物投资账务处理办法
  • 退休人员工资所得税纳税调整
  • 工程建设劳务费怎么算
  • 企业的银行利息收入要交企业所得税吗
  • 启用或关闭windows功能怎么勾选
  • 什么是个别资本的概念
  • 怎么获取win10密钥
  • 商标转让过程中公司转让
  • 跨年度暂估成本
  • php二维数组查询指定值
  • 商品销售税金及附加包括哪些
  • 多洛米蒂徒步线路
  • vue3打包优化
  • php json 对象
  • magento后台无法登录解决办法的两种方法
  • 前端跨域解决方案设计
  • mysqldump语句
  • 百度地图定位不更新
  • 居民企业和非居民企业如何判定?
  • 本月无开票企业怎么报税
  • 税金及附加算什么
  • db2原理
  • 预提工资的会计处理
  • 其他应付款贷方正数表示什么意思
  • 有限公司也可以向股东核发股票
  • 公司境外汇款该怎么处理
  • 为什么实收资本是贷方
  • 未缴增值税的贷方
  • 公司保障措施
  • 在建工程待摊支出是什么意思
  • 股权转让产生的个人所得税
  • 企业注册资本的规定
  • 房地产采取按揭销售的,其销售的入账时间为
  • 商贸企业增值税税负率低于1%则存在涉税问题
  • 增值税的专用发票金额含税吗
  • 员工的工资属于固定资产吗
  • 对外支付3万美元怎么算
  • 违约方缴纳的履约金
  • 医保卡里收入和余额不一样
  • 不动产分期抵扣表数据
  • 发票限额如何限定
  • 预收货款转营业外收入
  • 自产的产品作为福利增值税
  • 个体从业人数怎么填
  • 营改增后计税依据
  • 做好成本会计的基础工作主要对企业成本管理有什么意义
  • 免费领课程有什么陷阱
  • 差旅费报销单怎么填写
  • 会计政策变更的追溯调整法和未来适用法
  • 在sql server中使用对象资源管理器和SQL
  • 系统如何修改
  • win7怎么添加自启动程序
  • CentOS 5.4+OpenVZ+Vtonf打造VPS服务器的方法
  • windows找不到cmd怎么办
  • linux !!
  • perl 获取参数
  • 粒子特效代码
  • doctype报错
  • javascript异步编程
  • 广西税务12366如何查看代他人缴费发票
  • 税务局窗口业务
  • 郝姓家谱辈分查询
  • 广州代理记账公司注册
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设