本教程內(nèi)容來源于:http://fresco-cn.org
采用 知識共享 署名 4.0 國際 許可協(xié)議 進行許可
你也許想在圖片下載完成或者下載失敗之后,做一些其他事情。
圖片是后臺線程異步加載的,我們可以使用一個ControllerListener實現(xiàn)事件的監(jiān)聽。
_在監(jiān)聽事件回調(diào)時,無法修改圖片,如果需要修改圖片,可使用 后處理器(Postprocessor)
ControllerListener controllerListener = new BaseControllerListener() {
@Override
public void onFinalImageSet(
String id,
@Nullable ImageInfo imageInfo,
@Nullable Animatable anim) {
if (imageInfo == null) {
return;
}
QualityInfo qualityInfo = imageInfo.getQualityInfo();
FLog.d("Final image received! " +
"Size %d x %d",
"Quality level %d, good enough: %s, full quality: %s",
imageInfo.getWidth(),
imageInfo.getHeight(),
qualityInfo.getQuality(),
qualityInfo.isOfGoodEnoughQuality(),
qualityInfo.isOfFullQuality());
}
@Override
public void onIntermediateImageSet(String id, @Nullable ImageInfo imageInfo) {
FLog.d("Intermediate image received");
}
@Override
public void onFailure(String id, Throwable throwable) {
FLog.e(getClass(), throwable, "Error loading %s", id)
}
};
Uri uri;
DraweeController controller = Fresco.newControllerBuilder()
.setControllerListener(controllerListener)
.setUri(uri);
// other setters
.build();
mSimpleDraweeView.setController(controller);
對所有的圖片加載,onFinalImageSet 或者 onFailure 都會被觸發(fā)。前者在成功時,后者在失敗時。
如果允許呈現(xiàn)漸進式JPEG,同時圖片也是漸進式圖片,onIntermediateImageSet會在每個掃描被解碼后回調(diào)。具體圖片的那個掃描會被解碼,參見漸進式JPEG圖