Fresco圖片顯示

官網: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"));
相關文章
相關標籤/搜索