成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

解耦圖片加載庫(kù)

newtrek / 2671人閱讀

摘要:但是當(dāng)我們需要更換圖片加載庫(kù)時(shí),卻發(fā)現(xiàn)這是一項(xiàng)艱巨的任務(wù)。高斯模糊效果是一個(gè)很耗性能的一個(gè)操作,很容易引起,所以在使用時(shí)應(yīng)將盡可能的縮小,同時(shí)選擇一個(gè)穩(wěn)定的實(shí)現(xiàn)方式。

在APP開發(fā)過程,圖片加載是一個(gè)不可或缺的模塊,一般我們都會(huì)使用比較成熟的開源庫(kù),如Fresco, ImageLoader, Glide等。 這些開源庫(kù)也都提供了簡(jiǎn)潔的使用方式,使我們可以快速完成圖片的加載過程。但是當(dāng)我們需要更換圖片加載庫(kù)時(shí),卻發(fā)現(xiàn)這是一項(xiàng)艱巨的任務(wù)。

目標(biāo)

為了減小更換圖片加載庫(kù)的的工作量,我們需要降低圖片加載庫(kù)的耦合度,通過封裝的形式為應(yīng)用提供統(tǒng)一的使用接口。

本次封裝僅包含圖片加載庫(kù)的基本功能:

初始化圖片加載庫(kù)

顯示圖片(圓角,圓形等樣式)

下載圖片

從結(jié)構(gòu)圖中我們可以看出,更換圖片加載庫(kù)只需要設(shè)置相應(yīng)的mLoaderInstance即可。

使用
ImageLoaderManager.getInstance().init(getApplicationContext(), new FrescoInstance());
ImageLoaderManager.getInstance().displayImage("http://t.cn/RTRKzUt", image);
說明

ImageLoaderManager提供了統(tǒng)一的接口,至于初始化中怎樣配置,只需要在相應(yīng)的Instance中去實(shí)現(xiàn)即可;

如需要封裝其他的圖片加載庫(kù),如Picasso, 只需要實(shí)現(xiàn)ImageLoaderInstance接口即可;

圖片加載庫(kù)在加載圖片時(shí)都提供了配置項(xiàng),如設(shè)置占位圖,失敗圖,邊框等。這些與View相關(guān)的配置是以自定義View的形式實(shí)現(xiàn)的;

由于Fresco加載的目標(biāo)是SimpleDraweeView,其他的圖片加載庫(kù)為ImageView, 為了提供統(tǒng)一的目標(biāo)對(duì)象,我們使用繼承自GenericDraweeView(SimpleDraweeView的父類)的WrapImage作為加載目標(biāo)。如果你不需要封裝Fresco, 那么可將WrapImageView的父類改成ImageView;

項(xiàng)目中提供了高斯模糊的幾種實(shí)現(xiàn)方案:Fresco自帶,F(xiàn)astBlur算法,RenderScript。具體的效果可運(yùn)行項(xiàng)目進(jìn)行查看。說一下這幾種方案使用過程中的感受:


Fresco提供的高斯模糊效果算是這3種方案中最好的,穩(wěn)定,顯示效果細(xì)膩;

FastBlur算法,雖然可通過縮放Bitmap來提高轉(zhuǎn)換效率,但顯示效果不如Fresco;

RenderScript雖然是Android提供的,但是使用體驗(yàn)并不好,在ImageLoader中使用,模糊效果顯示異常。在Glide中使用時(shí),對(duì)Bitmap縮放后模糊效果顯示異常。同時(shí)由于有些廠商對(duì)這一功能進(jìn)行了閹割,使用時(shí)需要添加so庫(kù),為了版本的兼容性,還需要引入v8的兼容包。

高斯模糊效果是一個(gè)很耗性能的一個(gè)操作,很容易引起OOM,所以在使用時(shí)應(yīng)將Bitmap盡可能的縮小,同時(shí)選擇一個(gè)穩(wěn)定的實(shí)現(xiàn)方式。

項(xiàng)目地址

ImageloaderManager

總結(jié)

此項(xiàng)目旨在介紹這種封裝的思想,至于細(xì)節(jié)方面就交給各位小伙伴了,畢竟很少有APP會(huì)同時(shí)使用多個(gè)圖片加載庫(kù)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70900.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<