Android图片缓存框架 - Fresco的GenericDraweeHierarchy (五)
目錄
1.Fresco 簡(jiǎn)介
2. Fresco 文檔
3. Fresco開(kāi)發(fā)步驟
4. Fresco加載圖片6種方式
5. Drawees xm屬性設(shè)置
6 Fresco實(shí)現(xiàn)圓角或圓形圖片
7.?DraweeHierarchy設(shè)置
7.1?DraweeHierarchy簡(jiǎn)介
7.2 設(shè)置占位圖
7.3 設(shè)置加載失敗圖片
7.4 設(shè)置淡入淡出
7.5 設(shè)置圖片縮放類(lèi)型
7.6 重試圖片
7.7 設(shè)置進(jìn)度條
8.?Fresco的DraweeController
9.?ControllerListener 圖片加載監(jiān)聽(tīng)
10.?Fresco的ImageRequest
11?Fresco的顯示GIF
12?Fresco的BasePostprocessor圖片處理
13.Fresco設(shè)置和清除緩存
7.?DraweeHierarchy設(shè)置
7.1?DraweeHierarchy簡(jiǎn)介
? ? ? ?創(chuàng)建 DraweeHierarchy 對(duì)象較為耗時(shí)的一個(gè)過(guò)程,一個(gè)DraweeHierarchy不可以被多個(gè)View公用,
但是可以被同一個(gè)應(yīng)該多次利用,但是不要多次調(diào)用setHierarchy(),即使View可以回收;
7.2 設(shè)置占位圖
方式一:
GenericDraweeHierarchy hierarchy = draweeView.getHierarchy(); hierarchy.setPlaceholderImage(R.mipmap.android); draweeView.setHierarchy(hierarchy);方式二:
draweeView.getHierarchy().setPlaceholderImage(R.mipmap.android);7.3 設(shè)置加載失敗圖片
方式一:
GenericDraweeHierarchy hierarchy = draweeView.getHierarchy(); hierarchy.setFailureImage(R.mipmap.img_error); draweeView.setHierarchy(hierarchy);方式二:
draweeView.getHierarchy().setFailureImage(R.mipmap.img_error);7.4 設(shè)置淡入淡出
方式一:
GenericDraweeHierarchy hierarchy = draweeView.getHierarchy(); hierarchy.setFailureImage(R.mipmap.img_error); draweeView.setHierarchy(hierarchy);方式二:
draweeView.getHierarchy().setFadeDuration(3000);7.5 設(shè)置圖片縮放類(lèi)型
可縮放類(lèi)型:
| center | 居中,無(wú)縮放。 |
| centerCrop | 保持寬高比縮小或放大,使得兩邊都大于或等于顯示邊界,且寬或高契合顯示邊界。居中顯示。 |
| focusCrop | 同centerCrop, 但居中點(diǎn)不是中點(diǎn),而是指定的某個(gè)點(diǎn)。 |
| centerInside | 縮放圖片使兩邊都在顯示邊界內(nèi),居中顯示。和?fitCenter?不同,不會(huì)對(duì)圖片進(jìn)行放大。 如果圖尺寸大于顯示邊界,則保持長(zhǎng)寬比縮小圖片。 |
| fitCenter | 保持寬高比,縮小或者放大,使得圖片完全顯示在顯示邊界內(nèi),且寬或高契合顯示邊界。居中顯示。 |
| fitStart | 同上。但不居中,和顯示邊界左上對(duì)齊。 |
| fitEnd | 同fitCenter, 但不居中,和顯示邊界右下對(duì)齊。 |
| fitXY | 不保存寬高比,填充滿(mǎn)顯示邊界。 |
| none | 如要使用tile mode顯示, 需要設(shè)置為none |
代碼實(shí)現(xiàn):?
GenericDraweeHierarchy hierarchy = draweeView.getHierarchy(); hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.CENTER); draweeView.setHierarchy(hierarchy);7.6 重試圖片
setRetryImage() 設(shè)置重試圖片,圖片現(xiàn)在失敗后重試加載圖片;
hierarchy.setRetryImage(R.mipmap.img5);DraweeController controller = Fresco.newDraweeControllerBuilder().setUri(imgUrlError).setTapToRetryEnabled(true).build();draweeView.setController(controller);?
7.7 設(shè)置進(jìn)度條
ProgressBarDrawable progressBarDrawable = new ProgressBarDrawable(); progressBarDrawable.setRadius(10); progressBarDrawable.setColor(Color.RED);hierarchy.setProgressBarImage(progressBarDrawable); draweeView.setImageURI(imgUrl1);或者使用:
AutoRotateDrawable autoRotateDrawable = new AutoRotateDrawable(getResources().getDrawable(R.mipmap.loading, null), 3000);hierarchy.setProgressBarImage(autoRotateDrawable); draweeView.setImageURI(imgUrl1);?
總結(jié)
以上是生活随笔為你收集整理的Android图片缓存框架 - Fresco的GenericDraweeHierarchy (五)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c语言100列作业,C语言经典例题100
- 下一篇: Android12,SCHEDULE_E