Androidの強力な画像ロードフレームワークFrescoの簡単な使い方


Androidの画像をロードするフレームワークにはUniversal-Image-Loader、Picasso、Volley、Frescoがあります.この文章は主にFrescoの使い方を簡単に分析しています.FrescoはFacebookが発表したオープンソースフレームワークで、メモリ面での表現が優れています.
Fresco中国語説明:http://www.fresco-cn.org/
FrescoプロジェクトGitHubアドレス:https://github.com/facebook/fresco
このような需要がある場合、ピクチャがロードされているときにロードされている画像を提示し、ピクチャのロードに失敗したときにピクチャのロード時の画像を提示し、ピクチャを再ロードするときに、再試行時の画像を提示し、このピクチャのロードが完了するまで提示しなければならない.この場合はFrescoがおすすめです.
この例で要求されるピクチャアドレスは存在し、再ロードを表示したい場合は
Frescoの使い方とその簡単さ:プロジェクトにFrescoを導入するには、Moduleのbuildだけが必要です.gradleファイルのdependenciesに一言追加:compile'com.facebook.fresco:fresco:0.7.0+'
効果

 activity_main.xml :

    
    
    

MainActivityファイル
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
public class MainActivity extends Activity {
    private SimpleDraweeView simpleDraweeView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Fresco.initialize(this);
        setContentView(R.layout.activity_main);
        initView();
    }
    private void initView() {
        //  SimpleDraweeView  
        simpleDraweeView = (SimpleDraweeView) findViewById(R.id.main_sdv);
        //          URI
        Uri imageUri = Uri.parse("http://avatar.csdn.net/5/D/9/1_vatty748895431.jpg");
        //    
        simpleDraweeView.setImageURI(imageUri);
        //  DraweeController
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                //          URI  
                .setUri(imageUri)
                        //          
                .setTapToRetryEnabled(true)
                        //    Controller
                .setOldController(simpleDraweeView.getController())
                        //  
                .build();
        //  DraweeController
        simpleDraweeView.setController(controller);
    }
}

上から分かるように、Frescoの大きな特徴は、ImageView上で直接操作するのではなく、SimpleDraweeViewをカスタマイズすることです.現在、SimpleDraweeViewはImageViewから継承されていますが、多くのImageViewの方法は@Deprescatedで削除されています.Frescoを使用することをお勧めしません.注意すべき点はいくつかあります.1、Frescoライブラリの初期化を忘れないでください.
Fresco.initialize(this);
通常、この文はアプリケーションのonCreateで適切です.Activityが1つしかない場合はActivityに追加してもいいですが、setContentViewの前にライブラリを初期化してからレイアウトファイルのロードを完了する必要があります.
SimpleDraweeViewのwidthプロパティとheightプロパティは、wrap_を直接使用することなく明確な値でなければなりません.contentという内容が埋め込まれた数値は、もちろん例外的に、幅と高さが固定され、両者の割合が設定されている場合があります.
もう1つはwrap_contentは、実は両方が固定されていることに相当します.
mSimpleDraweeView.setAspectRatio(1.33f); //       4:3

まとめ:
XML属性
意味
fadeDuration
フェードアウトアニメーションの持続時間(単位:ミリ秒ms)
actualImageScaleType
実際の画像のスケールタイプ
placeholderImage
ビットマップ
placeholderImageScaleType
ビットマップのスケールタイプ
progressBarImage
進捗図
progressBarImageScaleType
進捗図のスケールタイプ
progressBarAutoRotateInterval
進捗図自動回転間隔時間(単位:ミリ秒ms)
failureImage
失敗図
failureImageScaleType
失敗した図のスケールタイプ
retryImage
再試行
retryImageScaleType
再試行のスケールタイプ
backgroundImage
背景図
overlayImage
重ね合わせ図
pressedStateOverlayImage
押した状態で表示される重ね合わせ図
roundAsCircle
円形図に設定
roundedCornerRadius
すみにくはんけい
roundTopLeft
左上隅がフィレットかどうか
roundTopRight
右上隅がフィレットかどうか
roundBottomLeft
左下隅がフィレットかどうか
roundBottomRight
右下隅がフィレットかどうか
roundingBorderWidth
円または円角グラフの枠線の幅
roundingBorderColor
円または円の枠線の色
roundWithOverlayColor
円形またはフィレット図の下の重ね合わせ色(色のみ設定)
viewAspectRatio
コントロールのアスペクト比
もっと多いソースコードは微信の公衆番号に注目してください:aikaifa、第1時間は博文のソースコードをプッシュします