一个方便的图片载入框架——ImageViewEx
我的博客:http://mrfufufu.github.io/
一、前言
近期在整理项目中的一些代码,以备即将开展的新项目中使用,刚刚整理到一个图片载入的 lib。用起来很的简单,和 picasso 或者谷歌的 Volley 等都一样,仅仅须要一行代码就能完毕图片载入的逻辑。
项目地址:ImageViewEx
项目效果:
二、使用
先给出用法:首先在布局文件里增加例如以下代码:
<mrfu.imageviewex.lib.ImageViewExandroid:id="@+id/imageview"android:layout_width="match_parent"android:layout_height="200dp"android:layout_below="@+id/toolbar"android:scaleType="centerCrop" />
假设是要使用圆形或者圆角的图片,仅仅须要将 ImageViewEx
改成 RoundImageView
就能够了。
在 Java 代码中。这样写就能够了
ImageViewEx imageviewex = (ImageViewEx)findViewById(R.id.imageview);
RoundImageView roundimageview1 = (RoundImageView)findViewById(R.id.roundimageview1);
RoundImageView roundimageview2 = (RoundImageView)findViewById(R.id.roundimageview2);
imageviewex.loadImage("http://f.hiphotos.baidu.com/image/pic/item/ae51f3deb48f8c5471a15c2e38292df5e0fe7f45.jpg");
roundimageview1.loadImage("http://f.hiphotos.baidu.com/image/pic/item/ae51f3deb48f8c5471a15c2e38292df5e0fe7f45.jpg");
roundimageview2.setConer(10, 10);//设置圆角图片
roundimageview2.loadImage("http://f.hiphotos.baidu.com/image/pic/item/ae51f3deb48f8c5471a15c2e38292df5e0fe7f45.jpg");
三、 原理
先给出类关系图
使用方式很easy,如今大概来分析一下这个框架的原理:
框架的载入方式主要还是通过 http 请求的 get 方式拿到图片,然后将其保存在 SD 卡中,将 SD 卡中的图片转化为 Bitmap 对象,通过 LruMemoryCache
缓存方式存到内存中。
并将其载入到相应 View 上去。
主要类就是 ImageViewEx
和 ImageLoader
了
1、 ImageViewEx.java
这个类的主要功能就是设置载入时的默认图片,调用ImageLoader 类的loadImageAsync进行载入图片,对载入完毕后的回调进行处理。都在loadImage(url)中体现了:
public void loadImage(String url) {mUrl = url;setImageBitmap(null);//设置载入时的默认图片if (defaultDrawable != null) {setImageDrawable(defaultDrawable);} else if (defaultImg != null) {setImageBitmap(defaultImg);} else {setImageDrawable(defaultImage);}//调用ImageLoader,进行图片载入ImageLoader.ImageRequest request = new ImageLoader.ImageRequest(url, this);ImageLoader.get().loadImageAsync(request, mHttpCallback);
}protected void toMeasure(Bitmap bitmap){};AbsHttpCallback mHttpCallback = new AbsHttpCallback() {@Overridepublic void onSuccess(final ImageRequest request, final Bitmap bitmap) {if(!request.url.equals(mUrl)) {return ;}toMeasure(bitmap);final ImageView iv = (ImageView)request.cookie;if(request.inMemory) {iv.setImageBitmap(bitmap);return ;}//设置动画handler.p
一个方便的图片载入框架——ImageViewEx相关推荐
- Universal-Image-Loader(UIL)图片载入框架使用简介
这个也是近期项目中使用到的第三方图片载入框架.在这里也自己总结一下,简单的介绍一些使用的方式. UIL图片载入框架特点 简单介绍: 项目地址:https://github.com/nostra13/A ...
- android glide图片框架,【Android 进阶】图片载入框架之Glide(示例代码)
简单介绍 在泰国举行的谷歌开发人员论坛上,谷歌为我们介绍了一个名叫 Glide 的图片载入库,作者是 bumptech.这个库被广泛的运用在 google 的开源项目中,包含 2014 年 googl ...
- Android批量图片载入经典系列——afinal框架实现图片的异步缓存载入
一.问题描写叙述 在之前的系列文章中,我们使用了Volley和Xutil框架实现图片的缓存载入,接下来我们再介绍一下afinal 框架的使用. Afinal 是一个android的http框架.sql ...
- 一个仿微信朋友圈的图片查看框架 - PhotoViewer
PhotoViewer 该图片查看器是模仿微信朋友圈查看图片编写 allprojects {repositories {...maven { url 'https://jitpack.io' }}}复 ...
- 具体解说Android的图片下载框架UniversialImageLoader之磁盘缓存(一)
沉浸在Android的开发世界中有一些年头的猴子们,预计都可以深深的体会到Android中的图片下载.展示.缓存一直是心中抹不去的痛.鄙人亦是如此.Ok,闲话不说.为了督促自己的学习.以下就逐一的挖掘 ...
- Android Handler 异步消息处理机制的妙用 创建强大的图片载入类
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自[张鸿洋的博客] 近期创建了一个群.方便大家交流,群号: ...
- Android图片缓存框架Glide
Android图片缓存框架Glide Glide是Google提供的一个组件.它具有获取.解码和展示视频剧照.图片.动画等功能.它提供了灵活的API,帮助开发者将Glide应用在几乎任何网络协议栈中. ...
- Dubbo入门介绍---搭建一个最简单的Demo框架
Dubbo入门---搭建一个最简单的Demo框架 置顶 2017年04月17日 19:10:44 是Guava不是瓜娃 阅读数:320947 标签: dubbo zookeeper 更多 个人分类: ...
- 轻量高效!清华智能计算实验室开源基于PyTorch的视频 (图片) 去模糊框架SimDeblur
作者丨科技猛兽 编辑丨极市平台 清华大学自动化系智能计算实验室团队开源基于 PyTorch 的视频 (图片) 去模糊框架 SimDeblur. 基于 PyTorch 的视频 (图片) 去模糊框架 Si ...
最新文章
- 英伟达十年力作:新一代光线追踪显卡 Quadro RTX及核心架构Turing,可支持AI运算...
- 【图论专题】负环与01分数规划
- eAccelerator和ionCube安装不上的解决办法
- 垂直居中实现方式总结
- Docker教程-仓库管理
- dtree 无法出现横向滚动条 (clip)
- 数据结构链表之循环链表——4
- 又一尴尬问题!不少用户反馈iPhone 12屏幕特别“黄”
- cenyos7安装 yum不可用_小区阳台隐形网横管不可用扁管,要改再去安装,还有问题...
- Nginx是如何处理一个HTTP请求的
- Log4j漏洞及解决方案,亲测
- google aviator:Java逻辑公式引擎
- 进制转换【最全进制转换汇总】(整数_小数_正数_负数)正负数整数小数十进制转任意进制-正负数整数小数任意进制转十进制-正负数低进制转高进制-正负数高进制转低进制
- 04 ElasticSearch分词及高阶搜索
- 如何下载blob:https://www.bilibili.com/的视频
- 正在完成android更新三星,手机实时动态:这些都是三星手机正在获取Android 10
- matlab中字符串和变量一起显示输出eval()函数用法
- 用css编写一个简单的旋转魔方
- 模拟电路技术之基础知识(二)
- 盘点电脑速度变慢的七大原因
热门文章
- 『中级篇』容器网络之host和none(29)
- jQuery动态五星评分
- Poj(3615),Floyd,最大值中的最小值
- HDU 1815, POJ 2749 Building roads(2-sat)
- 海量数据(数据量比较大时)的处理分析
- 求1+2+…+n变态问题的两个很棒的解法
- 浅谈Dynamic 关键字系列之三(下):ExpandoObject,DynamicObject,DynamicMetaObject
- Integration Services包部署常见问题汇总 (转自游子吟)
- 360智能工程中心期待你的加入
- Kafka 源码分析之网络层(二)