Android Frescoの使用

5129 ワード

依存をインポートする必要がある
//Fresco
compile 'com.facebook.fresco:fresco:+' 

//支持動図
compile 'com.facebook.fresco:animated-gif:+' 

layout

  
  
      
      
      
  
  

Activity Javaコード
import android.graphics.drawable.Animatable;  
import android.net.Uri;  
import android.os.Bundle;  
import android.support.v7.app.AppCompatActivity;  
import android.widget.Toast;  
  
import com.facebook.drawee.backends.pipeline.Fresco;  
import com.facebook.drawee.controller.AbstractDraweeController;  
import com.facebook.drawee.controller.BaseControllerListener;  
import com.facebook.drawee.view.SimpleDraweeView;  
import com.facebook.imagepipeline.image.ImageInfo;  
import com.facebook.imagepipeline.request.ImageRequest;  
import com.facebook.imagepipeline.request.ImageRequestBuilder;  
  
public class MainActivity extends AppCompatActivity {  
    private SimpleDraweeView simple_drawee_view;  
  
    public static final String mImageUrl = "http://pic39.nipic.com/20140226/18071023_164300608000_2.jpg";  
    public static final String mErrorUrl = "http://pic39.nipic.com/20140226/18071023_1643006080dddd00_2.jpg";  
    public static final String mGifUrl = "http://img.zcool.cn/community/0139505792e5fc0000018c1bbb7271.gif";  
    public static final String mJpegUrl = "http://attach.foyuan.net/portal/201308/03/09/2013080309223742492.jpg";  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        //   Fresco  
        Fresco.initialize(this);  
        setContentView(R.layout.activity_main);  
  
        Uri uri = Uri.parse(mGifUrl);  
  
        simple_drawee_view = (SimpleDraweeView) findViewById(R.id.simple_drawee_view);  
  
        //              
        //simple_drawee_view.setImageURI(uri);  
  
        BaseControllerListener baseControllerListener = new BaseControllerListener() {  
            @Override  
            public void onFinalImageSet(String id, ImageInfo imageInfo, Animatable animatable) {  
                animatable.start();  
            }  
  
            @Override  
            public void onFailure(String id, Throwable throwable) {  
                Toast.makeText(MainActivity.this, "    ", Toast.LENGTH_SHORT).show();  
            }  
        };  
  
        //                
        ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(uri)  
                //    jpeg     (      )  
                .setProgressiveRenderingEnabled(true)  
                .build();  
  
        //             
        AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()  
                .setImageRequest(imageRequest)  
                //           
                .setUri(uri)  
                //       (  4 )  
                .setTapToRetryEnabled(true)  
                //        
                .setAutoPlayAnimations(true)  
                //        
                .setControllerListener(baseControllerListener)  
                .setOldController(simple_drawee_view.getController())  
                .build();  
        simple_drawee_view.setController(controller);  
  
    }  
}

Frescoロードピクチャ
compile 'com.facebook.fresco:fresco:+'  
Frescoはgifをサポート
compile 'com.facebook.fresco:animated-gif:+'