位置: 编程技术 - 正文

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

  • 去年企业所得税税率是多少
  • 交易性金融资产的账务处理
  • 开票方丢失记账怎么处理
  • 测试收入的钱怎么用
  • 人力资源的差额征收怎么报企业所得税
  • 财政拨款收入年底结转到本期盈余
  • 春节商家促销文案
  • 施工单位奖金分配方案
  • 发放外单位人员奖金 个人所得税
  • 律师事务所计提准备金的标准
  • 不开票收入需要什么票据吗
  • 国有企业的所得税怎么算
  • 人力资源顾问公司有什么岗位
  • 西安职业中等专业学校校长
  • 广告服务差额征税
  • 加油的普票可以抵扣进项税吗
  • 报个税失业保险怎么填
  • 营改增后小规模纳税人如何报税
  • 个人所得税申报晚了一天会干什么
  • 借主营业务成本贷库存商品
  • 贷款买车的利息是多少3年
  • 判断自己的眉型
  • w10电脑很卡
  • 职工食堂的费用可以抵税吗
  • 企业去银行办理贷款需要什么
  • 收到其他公司的投资款计入什么科目
  • 怎样调整以前年度多计的收入
  • 优先股的发行主体
  • PHP:spl_autoload_unregister()的用法_spl函数
  • 共管账户的定义
  • 固定资产增值税税率
  • 小狐狸k
  • codeigniter 教程
  • 食堂维修费用计什么科目
  • php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
  • 移动端适配 px
  • vmware17虚拟机安装教程
  • 海外佣金需要交税吗
  • 应税服务项目减除清单0申报如何填写
  • pytest unittest
  • 印花税免税项目有哪些
  • 什么发票可以抵扣增值税吗
  • 差旅补助要计入成本吗
  • 营业收入计入销售收入吗
  • 用友T3财务报表没有数据
  • access 替换
  • 一般纳税人企业所得税税率2023
  • 个体工商户开普票需要进项票吗
  • 房地产企业怎么预缴企业所得税
  • 进口货物应纳增值税的计算公式
  • 纸巾的发票可以抵扣进项税吗
  • 委托加工应税消费品纳税义务发生时间
  • 股东投资款是否要缴税
  • 未达起征点可以申请一次性创业补贴吗
  • 公司为员工购买汽车怎么申报
  • 什么是建账?建账的基本程序是什么?
  • 值得收藏的一元硬币
  • windows开始菜单栏不见了
  • 如何替换图片中的文字
  • 电脑太慢了怎么解决
  • vcpkgsrv.exe是什么进程
  • linux快速查找历史命令
  • win10自定义功能键
  • win8系统怎么搜索文件
  • win8使用教程和技能
  • 升级打装备的手游
  • backtracker
  • 深入了解求助者时,首先要进行工作是
  • js函数调用常用字符串
  • jquery配合.NET实现点击指定绑定数据并且能够一键下载
  • 通过制作日晷我们可以探索发现一天之中
  • unity游戏开发的技术
  • Javascript Math ceil()、floor()、round()三个函数的区别
  • js中checked什么意思啊
  • 安卓微信仿ios版
  • JavaScript For Beginners(转载)
  • 增值税纳税申报操作流程
  • 北京密云十里堡镇河漕社区卫生服务站
  • 12366属于哪个部门
  • 天津地税自助办税终端
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设