www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > > 充電吧
[導讀]這是?一個開源的Android關于下載顯示圖片的工具類,在這個下載包里面jar文件,用于我們導入項目使用,具體使用方法在包里面也含有。下面是一個例子:雙擊代碼復制12?由于是使用過程中會圖片獲取要通過


這是?一個開源的Android關于下載顯示圖片的工具類,在這個下載包里面jar文件,用于我們導入項目使用,具體使用方法在包里面也含有。下面是一個例子:

雙擊代碼復制

1

2



?

由于是使用過程中會圖片獲取要通過網絡,并且有緩存設置,所以這2個權限必須要有。

很多人想知道如何設置緩存的目錄,可以通過以下方法:

雙擊代碼復制

1

File?cacheDir?=?StorageUtils.getOwnCacheDirectory(getApplicationContext(),?"imageloader/Cache");

//這個是你希望的緩存文件的目錄:imageloader/Cache

之后在ImageLoaderConfiguration的配置文件中通過設置

雙擊代碼復制

1

.discCache(new?UnlimitedDiscCache(cacheDir))//自定義緩存路徑

?

方法來設置該應用的圖片緩存路徑。

下面我們就來開始看如何使用這個圖片異步加載庫把:

一.

先要配置ImageLoaderConfiguration這個類實現(xiàn)全局ImageLoader的實現(xiàn)情況。

可以選擇在Application中初始化設置該類。

雙擊代碼復制

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

ImageLoaderConfiguration?config?=?new?ImageLoaderConfiguration??

????.Builder(context)??

????.memoryCacheExtraOptions(480,?800)?//?max?width,?max?height,即保存的每個緩存文件的最大長寬??

????.discCacheExtraOptions(480,?800,?CompressFormat.JPEG,?75,?null)?//?Can?slow?ImageLoader,?use?it?carefully?(Better?don't?use?it)/設置緩存的詳細信息,最好不要設置這個??

????.threadPoolSize(3)//線程池內加載的數量??

????.threadPriority(Thread.NORM_PRIORITY?-?2)??

????.denyCacheImageMultipleSizesInMemory()??

????.memoryCache(new?UsingFreqLimitedMemoryCache(2?*?1024?*?1024))?//?You?can?pass?your?own?memory?cache?implementation/你可以通過自己的內存緩存實現(xiàn)??

????.memoryCacheSize(2?*?1024?*?1024)????

????.discCacheSize(50?*?1024?*?1024)????

????.discCacheFileNameGenerator(new?Md5FileNameGenerator())//將保存的時候的URI名稱用MD5?加密??

????.tasksProcessingOrder(QueueProcessingType.LIFO)??

????.discCacheFileCount(100)?//緩存的文件數量??

????.discCache(new?UnlimitedDiscCache(cacheDir))//自定義緩存路徑??

????.defaultDisplayImageOptions(DisplayImageOptions.createSimple())??

????.imageDownloader(new?BaseImageDownloader(context,?5?*?1000,?30?*?1000))?//?connectTimeout?(5?s),?readTimeout?(30?s)超時時間??

????.writeDebugLogs()?//?Remove?for?release?app??

????.build();//開始構建??

????//?Initialize?ImageLoader?with?configuration.

?

以上的配置看個人需求進行選擇,不是所有都要進行配置。

配置好ImageLoaderConfiguration后,調用以下方法來實現(xiàn)初始化:

雙擊代碼復制

1

ImageLoader.getInstance().init(config);//全局初始化此配置

?

注:ImageLoaderConfiguration?配置中的.discCacheFileNameGenerator()方法是將緩存下來的文件以什么方式命名

里面可以調用的方法有??1.new?Md5FileNameGenerator()?//使用MD5對UIL進行加密命名

2.new?HashCodeFileNameGenerator()//使用HASHCODE對UIL進行加密命名

二.

????????使用ImageLoader進行圖片加載的時候,先要實例化ImageLoader,調用以下方法進行實例化,在每個布局里面都要實例化后再使用。

雙擊代碼復制

1

protected?ImageLoader?imageLoader?=?ImageLoader.getInstance();

之后進行顯示的圖片的各種格式DisplayImageOptions?的設置:

雙擊代碼復制

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

DisplayImageOptions?options;??

options?=?new?DisplayImageOptions.Builder()??

?.showImageOnLoading(R.drawable.ic_launcher)?//設置圖片在下載期間顯示的圖片??

?.showImageForEmptyUri(R.drawable.ic_launcher)//設置圖片Uri為空或是錯誤的時候顯示的圖片??

.showImageOnFail(R.drawable.ic_launcher)??//設置圖片加載/解碼過程中錯誤時候顯示的圖片

.cacheInMemory(true)//設置下載的圖片是否緩存在內存中??

.cacheOnDisc(true)//設置下載的圖片是否緩存在SD卡中??

.considerExifParams(true)??//是否考慮JPEG圖像EXIF參數(旋轉,翻轉)

.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//設置圖片以如何的編碼方式顯示??

.bitmapConfig(Bitmap.Config.RGB_565)//設置圖片的解碼類型//??

.decodingOptions(android.graphics.BitmapFactory.Options?decodingOptions)//設置圖片的解碼配置??

//.delayBeforeLoading(int?delayInMillis)//int?delayInMillis為你設置的下載前的延遲時間

//設置圖片加入緩存前,對bitmap進行設置??

//.preProcessor(BitmapProcessor?preProcessor)??

.resetViewBeforeLoading(true)//設置圖片在下載前是否重置,復位??

.displayer(new?RoundedBitmapDisplayer(20))//是否設置為圓角,弧度為多少??

.displayer(new?FadeInBitmapDisplayer(100))//是否圖片加載好后漸入的動畫時間??

.build();//構建完成

?

按照你所需要的配置去設置,如果不需要的就可以不做配置。

注:

以上配置中的:

?1).imageScaleType(ImageScaleType?imageScaleType)??是設置?圖片的縮放方式
縮放類型mageScaleType:

EXACTLY?:圖像將完全按比例縮小的目標大小

EXACTLY_STRETCHED:圖片會縮放到目標大小完全

IN_SAMPLE_INT:圖像將被二次采樣的整數倍

IN_SAMPLE_POWER_OF_2:圖片將降低2倍,直到下一減少步驟,使圖像更小的目標大小

NONE:圖片不會調整
2).displayer(BitmapDisplayer?displayer)???是設置?圖片的顯示方式

顯示方式displayer:

RoundedBitmapDisplayer(int?roundPixels)設置圓角圖片

FakeBitmapDisplayer()這個類什么都沒做

FadeInBitmapDisplayer(int?durationMillis)設置圖片漸顯的時間

SimpleBitmapDisplayer()正常顯示一張圖片

之后按照需求調用

1.純粹為了加載默認配置的一個圖片的

方法:

??public?void?displayImage(String?uri,?ImageView?imageView)?{}

??具體實現(xiàn):

雙擊代碼復制

1

ImageLoader.getInstance().displayImage(imageUrl,?imageView);?//?imageUrl代表圖片的URL地址,imageView代表承載圖片的IMAGEVIEW控件

?

2.加載自定義配置的一個圖片的

方法:

??public?void?displayImage(String?uri,?ImageView?imageView,?DisplayImageOptions?options)?{}

??具體實現(xiàn):

雙擊代碼復制

1

ImageLoader.getInstance().displayImage(imageUrl,?imageView,options);?//?imageUrl代表圖片的URL地址,imageView代表承載圖片的IMAGEVIEW控件?,?options代表DisplayImageOptions配置文件

?

3.圖片加載時候帶加載情況的監(jiān)聽

方法:

?public?void?displayImage(String?uri,?ImageAware?imageAware,?DisplayImageOptions?options,ImageLoadingListener?listener)?{}

??ImageLoadingListener?用于監(jiān)聽圖片的下載情況。

??具體實現(xiàn):

雙擊代碼復制

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

imageLoader.displayImage(imageUrl,?imageView,?options,?new?ImageLoadingListener()?{??

????@Override?

????public?void?onLoadingStarted()?{??

???????//開始加載的時候執(zhí)行??

????}??

????@Override?

????public?void?onLoadingFailed(FailReason?failReason)?{????????

???????//加載失敗的時候執(zhí)行??

????}???

????@Override??

????public?void?onLoadingComplete(Bitmap?loadedImage)?{??

???????//加載成功的時候執(zhí)行??

????}???

????@Override??

????public?void?onLoadingCancelled()?{??

???????//加載取消的時候執(zhí)行??

???

????}});

4.圖片加載時候,帶監(jiān)聽又帶加載進度條的情況
調用:
public?void?loadImage(String?uri,?ImageSize?targetImageSize,?DisplayImageOptions?options,
ImageLoadingListener?listener,?ImageLoadingProgressListener?progressListener)?{}
具體實現(xiàn):

雙擊代碼復制

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

imageLoader.displayImage(imageUrl,?imageView,?options,?new?ImageLoadingListener()?{??

????@Override?

????public?void?onLoadingStarted()?{??

???????//開始加載的時候執(zhí)行??

????}??

????@Override?

????public?void?onLoadingFailed(FailReason?failReason)?{????????

???????//加載失敗的時候執(zhí)行??

????}??????

????@Override?????

????public?void?onLoadingComplete(Bitmap?loadedImage)?{??

???????//加載成功的時候執(zhí)行??

????}??????

????@Override?????

????public?void?onLoadingCancelled()?{??

???????//加載取消的時候執(zhí)行??

????},new?ImageLoadingProgressListener()?{????????

??????@Override?

??????public?void?onProgressUpdate(String?imageUri,?View?view,?int?current,int?total)?{?????

??????//在這里更新?ProgressBar的進度信息??

??????}??

????});

四、注意事項
1.上述提到的2個權限必須加入,否則會出錯
2.ImageLoaderConfiguration必須配置并且全局化的初始化這個配置ImageLoader.getInstance().init(config);??否則也會出現(xiàn)錯誤提示
3.ImageLoader是根據ImageView的height,width確定圖片的寬高。
4.如果經常出現(xiàn)OOM(別人那邊看到的,覺得很有提的必要)
①減少配置之中線程池的大小,(.threadPoolSize).推薦1-5;
②使用.bitmapConfig(Bitmap.config.RGB_565)代替ARGB_8888;
③使用.imageScaleType(ImageScaleType.IN_SAMPLE_INT)或者????????try.imageScaleType(ImageScaleType.EXACTLY);
④避免使用RoundedBitmapDisplayer.他會創(chuàng)建新的ARGB_8888格式的Bitmap對象;
⑤使用.memoryCache(new?WeakMemoryCache()),不要使用.cacheInMemory();


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉