Universal-Image-Loader源码阅读(28)-ImageDownloader
来源:互联网 发布:cheshenkaiche最新域名 编辑:程序博客网 时间:2024/06/05 05:41
图片加载接口。
源码:
/** * Provides retrieving of {@link InputStream} of image by URI.<br /> * Implementations have to be thread-safe. * * @author Sergey Tarasevich (nostra13[at]gmail[dot]com) * @since 1.4.0 */public interface ImageDownloader {/** * Retrieves {@link InputStream} of image by URI. * * @param imageUri Image URI * @param extra Auxiliary object which was passed to {@link DisplayImageOptions.Builder#extraForDownloader(Object) * DisplayImageOptions.extraForDownloader(Object)}; can be null * @return {@link InputStream} of image * @throws IOException if some I/O error occurs during getting image stream * @throws UnsupportedOperationException if image URI has unsupported scheme(protocol) */InputStream getStream(String imageUri, Object extra) throws IOException;//唯一的接口函数定义/** Represents supported schemes(protocols) of URI. Provides convenient methods for work with schemes and URIs. */public enum Scheme {//我们支持的图片url类型,如果想要添加的话(ftp),可以在此添加HTTP("http"), HTTPS("https"), FILE("file"), CONTENT("content"), ASSETS("assets"), DRAWABLE("drawable"), UNKNOWN("");private String scheme;private String uriPrefix;Scheme(String scheme) {this.scheme = scheme;uriPrefix = scheme + "://";}/** * Defines scheme of incoming URI * * @param uri URI for scheme detection * @return Scheme of incoming URI */public static Scheme ofUri(String uri) {if (uri != null) {for (Scheme s : values()) {if (s.belongsTo(uri)) {return s;}}}return UNKNOWN;}private boolean belongsTo(String uri) {//判断uri的协议类型return uri.toLowerCase(Locale.US).startsWith(uriPrefix);}/** Appends scheme to incoming path */public String wrap(String path) {//获取全路径return uriPrefix + path;}/** Removed scheme part ("scheme://") from incoming URI */public String crop(String uri) {//获取剔除前缀的路径if (!belongsTo(uri)) {throw new IllegalArgumentException(String.format("URI [%1$s] doesn't have expected scheme [%2$s]", uri, scheme));}return uri.substring(uriPrefix.length());}}}
0 0
- Universal-Image-Loader源码阅读(28)-ImageDownloader
- Universal-Image-Loader源码阅读(35)-
- 【Android框架】Android-universal-image-loader源码阅读(一)
- Universal-Image-Loader源码阅读(1)-开篇
- Universal-Image-Loader源码阅读(2)-utils/L
- Universal-Image-Loader源码阅读(3)-utils/IoUtils
- Universal-Image-Loader源码阅读(4)-utils/ImageSizeUtils
- Universal-Image-Loader源码阅读(5)-core/iamgeaware/ImageAware
- Universal-Image-Loader源码阅读(6)-core/imageaware/ViewAware
- Universal-Image-Loader源码阅读(7)-core/imageaware/ImageViewAware
- Universal-Image-Loader源码阅读(8)-core/imageaware/NonViewAware
- Universal-Image-Loader源码阅读(9)-utils/StorageUtils
- Universal-Image-Loader源码阅读(10)-utils/MemoryCacheUtils
- Universal-Image-loader源码阅读(11)-catche/MemoryCache
- Universal-Image-Loader源码阅读(12)-cache/BaseMemoryCache
- Universal-Image-Loader源码阅读(13)-cache/LimitedMemoryCache
- Universal-Image-Loader源码阅读(14)-memory/impl/WeakMemoryCache
- Universal-Image-Loader源码阅读(15)-memory/impl/LruMemoryCache
- An introduction to Lib UV
- M3U , PLSv2 and ASX Play List Specification
- java JDBC入门
- Linux ssh免密钥登陆配置
- 进程间通信之消息队列
- Universal-Image-Loader源码阅读(28)-ImageDownloader
- (ACM数论)求N的阶乘末尾有多少个0
- 利用eclipse 创建maven项目
- Oracle等待事件之五——SQL*NET相关等待事件
- linux进程的睡眠和唤醒
- java简易代码生成器V1版本
- breakpad进程外dump捕获浅析
- 接触Struts2--理解Struts.xml标签
- 学习注水-20160829-打字手型