在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 漸進式JPEG圖
進度條
在JAVA代碼中使用Drawees
Drawee的各種效果配置
緩存
一些陷阱
關于在Android Studio中編譯
多圖請求及圖片復用
自定義網絡加載
支持的URIs
可關閉的引用
監(jiān)聽下載事件
修改圖片
引入Fresco
縮放
圓角和圓圈
配置Image Pipeline
縮放和旋轉圖片
(圖片請求)Image Requests
自定義View
使用ControllerBuilder
在XML中使用Drawees
開始使用 Fresco
關鍵概念
Image Pipeline介紹
漸進式JPEG圖
數據源和數據訂閱者
直接使用Image Pipeline
動畫圖(gif)
使用其他的Image Loader

漸進式JPEG圖

本教程內容來源于:http://fresco-cn.org
采用 知識共享 署名 4.0 國際 許可協(xié)議 進行許可

注意: 本頁提及的API僅是初步設計,后續(xù)可能變動

Fresco 支持漸進式的網絡JPEG圖。在開始加載之后,圖會從模糊到清晰漸漸呈現(xiàn)。

你可以設置一個清晰度標準,在未達到這個清晰度之前,會一直顯示占位圖。

漸進式JPEG圖僅僅支持網絡圖。

初始化

配置Image pipeline時 需要傳遞一個 ProgressiveJpegConfig. 的實例。

這個實例需要完成兩個事情:

  1. 返回下一個需要解碼的掃描次數
  2. 確定多少個掃描次數之后的圖片才能開始顯示。

下面的實例中,為了實現(xiàn)節(jié)省CPU,并不是每個掃描都進行解碼。

注意:

  • 每次解碼完之后,調用getNextScanNumberToDecode, 等待掃描值大于返回值,才有可能進行解碼。

假設,隨著下載的進行,下載完的掃描序列如下: 1, 4, 5, 10。那么:

  1. 首次調用getNextScanNumberToDecode返回為2, 因為初始時,解碼的掃描數為0。
  2. 那么1將不會解碼,下載完成4個掃描時,解碼一次。下個解碼為掃描數為6
  3. 5不會解碼,10才會解碼
ProgressiveJpegConfig pjpegConfig = new ProgressiveJpegConfig() {
  @Override
  public int getNextScanNumberToDecode(int scanNumber) {
    return scanNumber + 2;
  }    

  public QualityInfo getQualityInfo(int scanNumber) {
    boolean isGoodEnough = (scanNumber >= 5);
    return ImmutableQualityInfo.of(scanNumber, isGoodEnough, false);
  }
}

ImagePipelineConfig config = ImagePipelineConfig.newBuilder()
    .setProgressiveJpegConfig(pjpeg)
    .build();

除了自己實現(xiàn)ProgressiveJpegConfig, 也可以直接使用SimpleProgressiveJpegConfig.

At Request Time

目前,我們必須顯式地在加載時,允許漸進式JPEG圖片加載。

Uri uri;
ImageRequest request = ImageRequestBuilder
    .newBuilderWithSource(uri)
    .setProgressiveRenderingEnabled(true)
    .build();
PipelineDraweeController controller = Fresco.newControllerBuilder()
    .setImageRequest(requests)
    .setOldController(mSimpleDraweeView.getController())
    .build();

mSimpleDraweeView.setController(controller);

我們希望在后續(xù)的版本中,在setImageURI方法中可以直接支持漸進式圖片加載。