2017-10-25 21 views
0

私はこのように私のアプリでFrescoinitializeそれを使用しています:Fresco - setDownsampleEnabled true/false?

DiskCacheConfig diskCacheConfig = ... 

    ImagePipelineConfig imagePipelineConfig = ImagePipelineConfig.newBuilder(this) 
      .setMainDiskCacheConfig(diskCacheConfig) 
      .build(); 

    Fresco.initialize(this, imagePipelineConfig); 

それはすべてのケースが、1つで正常に動作しています:スクロールビューの大きな画像の膨大なリスト "を。 (この場合は本当に遅い)。私は、ドキュメントを読んで

resizing、その後setDownsampleEnabled(真)を使用してフレスコの初期化を変更ビューこの「大きな画像の膨大なリスト」の正常に動作します...しかしに対する貧結果を与える

ImagePipelineConfig imagePipelineConfig = ImagePipelineConfig.newBuilder(this) 
      .setMainDiskCacheConfig(diskCacheConfig) 
      .setDownsampleEnabled(true) // faster for downsampling of big images 
      .build(); 

    Fresco.initialize(this, imagePipelineConfig); 

残りの部分、特に私が画像をフルスクリーンで表示しているとき。画像はちょっと「ムジ」ですthis postを参照してください。

質問:

それだけで私のアプリの '一部' のため(真)setDownsampleEnabledを使用することは可能ですか? のsetDownsampleEnabled(true)が必要な「大きな画像の巨大なリスト」を除いて、私のすべてのアプリケーションの「標準」設定が必要です。

ImagePipelineConfigを使用して設定する方法がありますか?

率直に言えば、現在の状況はほぼOKですので、これは大きな問題ではありませんが、これが可能かどうかを知りたい場合は、結果を確認してテストしてください。

注:

私はフレスココードに掘っこれを見た:

package com.facebook.drawee.backends.pipeline; 
... 
public class Fresco { 
... 
public static void initialize(Context context, @Nullable ImagePipelineConfig imagePipelineConfig, @Nullable DraweeConfig draweeConfig) { 
    if(sIsInitialized) { 
     FLog.w(TAG, "Fresco has already been initialized! `Fresco.initialize(...)` should only be called 1 single time to avoid memory leaks!"); 
    } else { 
     sIsInitialized = true; 
    } 
    ... 
} 
... 

'memory leaks'を..すごい..

だから私は、フレスコを呼び出すためにあえてしません。私のアプリケーションで2回、フルリストを表示する自分のアクティビティに対して2回、初期化(...)を2回行います。

どうすればよいですか?

ありがとうございました。

設定: (最新)フレスコ1.5.0

答えて

1

残念ながら、ダウンサンプリングの設定を変更すると、現在のフレスコ画でサポートされていません。これを変更するには、いくつかの内部的な変更が必要です。この機能を追加するプルリクエストをお送りください:)

+0

お返事ありがとう!私が書いたように、現在の状況は私のために十分です。だから私は物事を今のままに保つつもりです。 – Pascal

関連する問題