輔助包
1.deque包
1.Deque.java
雙隊(duì)列接口,extends queue.
這里要說明下
例如:addFirst,offerFirst都表示添加元素,但是兩者是由區(qū)別的态贤;
offerFirst添加失敗會(huì)有throw exception,addFirst不會(huì)影锈。
removeFirst公般,pollFirst,getFirst,都可以返回第一個(gè)元素厦酬,但是他們是有區(qū)別的;
removeFirst返回first元素瘫想,并切從隊(duì)列刪除該元素仗阅,但是如果隊(duì)列empty,so throw exception;
pollFirst返回first元素国夜,并切從隊(duì)列刪除該元素减噪,但是如果隊(duì)列empty,return null;
getFirst返回first元素,不會(huì)從隊(duì)列刪除該元素,但是如果隊(duì)列empty,so throw exception筹裕。
2.BlockingDeque.java
聲明阻塞式的雙隊(duì)列接口
3.LinkedBlockingDeque.java
實(shí)現(xiàn)了鏈表式的阻塞雙隊(duì)列醋闭,并且可以序列化。
thread阻塞主要是使用了ReentrantLock(重入鎖)和notEmpty朝卒,notFull 兩個(gè)Condition证逻,Node鏈表式的結(jié)構(gòu)(組合模式)
4.LIFOLinkedBlockingDeque.java
LinkedBlockingDeque的子類,LinkedBlockingDeque的實(shí)現(xiàn)是FIFO抗斤,只需要修改插入元素囚企,與取出元素就可實(shí)現(xiàn)LIFO算法的鏈表阻塞雙隊(duì)列。
2.
1.ContentLengthInputStream.java
inputstream的裝飾類(裝飾模式)瑞眼,給inputstream指定了長(zhǎng)度龙宏。
2.FailReason.java
對(duì)圖片加載,顯示異常的封裝伤疙。FailType是枚舉類型
3.FlushedInputStream.java
該類是為了修復(fù)inputstream to bitmap失敗银酗,感覺像是Android的bug,大家可以查看the problem
4.ImageScaleType.java
枚舉類型掩浙,列舉了解析圖片時(shí)縮放的類型
NONE 不進(jìn)行縮放花吟;
NONE_SAFE 整數(shù)倍縮放,直至小于設(shè)備可支持的最大尺寸
IN_SAMPLE_POWER_OF_2 以2的倍數(shù)縮放厨姚,直至小于目標(biāo)尺寸
IN_SAMPLE_INT 整數(shù)倍縮放衅澈,直至小于目標(biāo)尺寸
EXACTLY 寬或高或兩者縮放到目標(biāo)尺寸大小,depends on android.widget.ImageView.ScaleType
EXACTLY_STRETCHED 寬或高或兩者 縮放或者拉伸 到目標(biāo)尺寸大小谬墙,depends on android.widget.ImageView.ScaleType今布;
5.ImageSize.java
圖片尺寸的封裝,包含了width和height拭抬。
6.LoadedFrom.java
枚舉類型部默,Source image loaded from.
7.QueueProcessingType.java
枚舉,隊(duì)列處理方式造虎,F(xiàn)IFO傅蹂,LIFO
8.ViewScaleType.java
枚舉類型,簡(jiǎn)化了ImageView's scale type
FIT_INSIDE 圖片的寬高按比列縮放算凿,直至有一邊不大于view的尺寸
CROP 圖片的寬高按比列縮放份蝴,直至兩邊都不大于view的尺寸