官網:http://www.fresco-cn.org/java
優勢:android
一、圖片從屏幕消失時馬上釋放。網絡
二、若是網絡加載失敗的話,可點擊佔位符從新加載圖片。app
三、能夠在圖片上顯示加載的進度條。佈局
四、優先顯示低分辨率的圖片,待到數據到達後再顯示高清圖片。ui
Gradle配置this
compile 'com.facebook.fresco:fresco:0.9.0+'
在Application的onCreate方法中初始化spa
Fresco.initialize(this);
佈局文件code
xmlns:app="http://schemas.android.com/apk/res-auto" <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/iv_photo_sd" android:layout_width="100dp" android:layout_height="100dp" app:roundAsCircle="true" app:actualImageScaleType="focusCrop" app:failureImage="@mipmap/hugh" app:placeholderImage="@mipmap/hugh"/>
設置顯示圖片xml
方法一: ImageRequest request = ImageRequestBuilder .newBuilderWithSource(Uri.parse("http://attimg.dospy.com/img/day_100708/20100708_2c925dfb4b5f0aa64b6cL2zFfXzrsP3x.gif")) .setProgressiveRenderingEnabled(true) .build(); DraweeController controller = Fresco.newDraweeControllerBuilder() .setImageRequest(request) .setOldController(simpleDraweeView.getController()) .setAutoPlayAnimations(true) // 設置動圖自動播放 .build(); simpleDraweeView.setController(controller); 方法二: simpleDraweeView.setImageURI(Uri.parse());
各類特效
a、點擊從新加載圖片
佈局文件: frescon:retryImage="@mipmap/notice_ico_birthday" // 設置4次點擊從新加載失敗後顯示的圖片 ************************************************************************************************ DraweeController controller = Fresco.newDraweeControllerBuilder() .setTapToRetryEnabled(true) // 這裏是重點,設置容許點擊從新加載 .setUri(Uri.parse("http://www.bz55.com/uploads/allimg/140722/1-140H2114124.jpg")) .setOldController(simpleDraweeView.getController()) .build(); simpleDraweeView.setController(controller);
在代碼中設置各類特效
RoundingParams roundingParams = new RoundingParams() .setRoundAsCircle(true); GenericDraweeHierarchyBuilder builder = new GenericDraweeHierarchyBuilder(getResources()); GenericDraweeHierarchy hierarchy = builder .setProgressBarImage(new ProgressBarDrawable()) // 設置進度條 .setPlaceholderImage(getResources().getDrawable(R.mipmap.ic_launcher)) // 設置佔位符 .setFailureImage(getResources().getDrawable(R.mipmap.notice_ico_undo)) // 設置加載失敗的圖片 .setRetryImage(getResources().getDrawable(R.mipmap.notice_ico_birthday)) // 設置反覆加載失敗的圖片 .setRoundingParams(roundingParams) // 設置圓角 .build(); simpleDraweeView.setHierarchy(hierarchy); simpleDraweeView.setImageURI(Uri.parse("http://www.bz55.com/uploads/allimg/140722/1-140H2114124.jpg"));