位置: 编程技术 - 正文

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

  • 企业所得税人数包括劳务派遣吗
  • 企业可以一次性补交员工十年养老保险吗
  • 进项多少就开多少的票吗
  • 母子公司无偿划转股权印花税
  • 资产负债表上的资产是原值还是净值
  • 无偿赠送他人货物交增值税吗
  • 小规模纳税人开普票免税
  • 购原材料红字发票会计分录怎么写?
  • 暂估入库产品行程影响所得税汇算清缴吗
  • 出售股份是利好吗
  • 日用品增值税税率
  • 年末会计做账怎样少交企业所得税呢?
  • 最新契税优惠政策公告财政部
  • 开票时税收编码必须和进项一致吗
  • 计算企业所得税的公式
  • 企业从事生产经营活动时所持有的基本信念
  • 物业会计科目设置
  • 结转与结余
  • 网上报税申报成功之后该怎么操作
  • 企业不征税收入用于支出所形成的固定资产
  • 货物分批付款会计处理
  • 存货跌价准备如何结转
  • 移动电子发票显示无法开具怎么获取发票
  • 小规模纳税人核定征收标准
  • 系统安全保障体系
  • 酷狗云盘是干什么用的
  • 待清算商户消费款项是什么
  • 未开票收入怎么计算增值税
  • 农产品核定扣除和计算抵扣的区别
  • 公司怎么查已报销发票
  • 基础会计供应过程的核算内容
  • 哪种审计证据可以查出来
  • 土耳其棉花堡位置
  • 费用报销单怎么划线
  • 新办公司实收资本怎么查
  • pytorch基础
  • 外贸企业购货合同要交印花税吗
  • 银行的社保缴费基数好高啊
  • 增值税专用发票几个点
  • 物权变动的原因是什么
  • DB2 9(Viper)快速入门
  • 雇佣临时工需要交个人所得税吗
  • 股权收购协议书实际案例
  • 公司组织员工吃饭或举行活动的行为被称为什么
  • 疫情防控重点保障物资生产企业可以按月
  • 有支出没有发票应怎么整改
  • 开经销商公司要多少钱
  • 当月的银行日记账漏计怎么办
  • 其他公司归还借款分录
  • 应付账款周转率越大越好还是越小越好?
  • 境外企业向境内企业提供技术服务
  • 股权转让如何进行
  • 固定资产发票未到可以确认固定资产吗
  • 天然气管道安装费多少钱一米
  • 特定担保债权
  • 现金日记账与现金流量表的区别
  • 个人账号可以向对公账户转账吗
  • mysqld mysql
  • xp系统 win7
  • windowsxp怎么用
  • windows崩溃后怎么修复
  • windows 个性化设置包含哪些方面?
  • win7删除搜索历史记录
  • ubuntu 配置
  • win10系统无法运行exe文件
  • linux启动cron定时任务
  • w7提高开机速度
  • win10桌面上怎么分成几个区域
  • win8.1怎么样
  • 深入理解llvm
  • 安卓游戏引擎
  • from tkinter import
  • android系统介绍
  • 并行 python
  • maxlength属性设置为0
  • jquery多级联动下拉菜单
  • 青岛新农合网上缴费时间
  • 纳税人类型税码是什么
  • 转让定价调查与调整实务问答
  • 土地增值税扣除项目金额怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设