位置: 编程技术 - 正文

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

  • 个税手续费返还政策最新规定2023
  • 什么是企业税务登记号
  • 融资租赁业务如何高效拓展
  • 公司清算存货怎么算
  • 季中转一般纳税人申报步骤
  • 哪些企业适用于品种法
  • 预缴土地增值税的会计处理
  • 汇算清缴报告和审计报告有什么区别
  • 团建费用会计科目
  • 企业人员信息已存在无需新增
  • 可供出售金融资产和交易性金融资产
  • 货运代理公司会计涉及的科目
  • 长期债券是指偿还期限超过几个月的债券
  • 代驾公司增值税怎么交
  • 新开公司季初季末人数和资产可以填0吗
  • 国外进口的食品还能吃吗
  • 固定资产实物归哪个部门管理
  • 子公司能转让吗
  • 专票密码区出来一点能报吗
  • 有限合伙创投企业
  • 商场赠送购物券是真的吗
  • 电脑任务栏图标怎么移到左边
  • 股息红利需要缴纳个税吗
  • 如何做预估成本
  • 等值货币什么意思
  • 年底会计人员要做什么
  • Win7系统中如何快速查询文件内容
  • 太超过了
  • php中split
  • 房屋修理费用
  • 医院的重要
  • php实现原理
  • 资金性质是什么有哪些方面
  • 悬崖边上的门
  • php实现图片上传
  • 向境外支付技术提成费需要提交什么材料
  • 海鸥歌曲
  • 小企业会计准则没有以前年度损益调整科目
  • 可视化大屏的几种模式
  • 以前年度损益科目代码
  • 多表联动查询
  • vue为什么监听不到对象内部属性
  • 房地产开发企业应该具备哪些条件
  • php数据的提交与采集实验报告
  • phpcms怎么样
  • 固定资金的概念及其特点
  • 通用机打发票可以查验吗
  • 收到劳务派遣发票可以抵扣吗
  • 增值税在纳税申报表中怎么得出
  • 教育咨询公司能开培训费发票吗
  • 试生产期间发生事故后重新
  • windows11/windows10专业清理的系统工具Duplicate Cleaner5.0.13中文破解免费下载
  • 职工短期薪酬包括哪些
  • 用友t3怎么结转本年利润
  • 城市维护建设税,教育费附加,地方教育费附加
  • access2010加密解密数据库时
  • 预付房租收到发票后如何做账
  • 一般账户的网银操作员变更怎么办理
  • 未分配利润如何计算
  • 费用先付款后收到发票的会计分录
  • 出租办公楼收入属于收入吗
  • 以前年度损益调整怎么做账
  • win10免费安装吗
  • win10系统永久激活软件
  • win10系统无法卸载补丁
  • 如何解决windows副本不是正版
  • win8怎么设置桌面背景
  • Unity3D HTTP协议 网络通信 post get
  • android开发环境是什么
  • 从零开始咋样
  • dos命令grub
  • android 图片
  • 批量压缩命令
  • javascript的
  • python运行出现none
  • 重庆国税电子税务局官网登录入口网址
  • 国家税务局通用机打发票属于增值税发票吗
  • 怎么在电脑上下载浙政钉
  • 小规模开了红字发票申报表怎么填
  • 法治税务示范基地枫桥
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设