Android Frescoのパッケージ

4445 ワード

public class FrescoUtils {

/**
 *       
 *
 * @param url
 * @param simpleDraweeView
 */
public static void showBasicPic(String url, SimpleDraweeView simpleDraweeView) {
    Uri uri = Uri.parse(url);
    simpleDraweeView.setImageURI(uri);
}

/**
 *        
 *
 * @param url
 * @param simpleDraweeView
 */
public static void showProgressivePic(String url, SimpleDraweeView simpleDraweeView) {
    Uri uri = Uri.parse(url);
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
            .setProgressiveRenderingEnabled(true)
            .build();
    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setImageRequest(request)
            .setOldController(simpleDraweeView.getController())
            .build();
    simpleDraweeView.setController(controller);
}

/**
 *       
 *
 * @param url
 * @param simpleDraweeView
 * @param radius
 * @param width
 * @param color
 */
public static void showfilletPic(String url, SimpleDraweeView simpleDraweeView, float radius, float width, int color) {
    Uri uri = Uri.parse(url);
    RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
    if (width > 0) {
        roundingParams.setBorder(color, width);//   
    }
    roundingParams.setCornersRadius(radius);//    
    simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
    simpleDraweeView.setImageURI(uri);
}

/**
 *      
 * @param url
 * @param simpleDraweeView
 * @param topLeft
 * @param topRight
 * @param bottmLeft
 * @param bottomRight
 * @param width
 * @param color
 */
public static void showYuanJiaoPic(String url, SimpleDraweeView simpleDraweeView, float topLeft, float topRight, float bottmLeft, float bottomRight, float width, int color) {
    Uri uri = Uri.parse(url);
    RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
    if (width > 0) {
        roundingParams.setBorder(color, width);//   
    }
    roundingParams.setCornersRadii(topLeft, topRight, bottmLeft, bottomRight);
    simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
    simpleDraweeView.setImageURI(uri);
}

/**
 *       
 *
 * @param url
 * @param simpleDraweeView
 * @param width
 * @param color
 */
public static void showCirclePic(String url, SimpleDraweeView simpleDraweeView, float width, int color) {
    if (url == null) {
        simpleDraweeView.setImageURI(url);
        return;
    }
    Uri uri = Uri.parse(url);
    RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
    if (width > 0) {
        roundingParams.setBorder(color, width);
    }
    roundingParams.setRoundAsCircle(true);
    
 *
 * @param url
 * @param simpleDraweeView
 */
public static void showGIFPic(String url, SimpleDraweeView simpleDraweeView) {
    Uri uri = Uri.parse(url);
    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setUri(uri)
            .setTapToRetryEnabled(true)
            .setAutoPlayAnimations(true)
            .setOldController(simpleDraweeView.getController())
            .build();
    simpleDraweeView.setController(controller);
}

/**
 *       
 *
 * @param url
 * @param simpleDraweeView
 * @param iterations
 * @param blurRadius
 */
public static void showUrlBlur(String url, SimpleDraweeView simpleDraweeView, int iterations, int blurRadius) {
    Uri uri = Uri.parse(url);
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
            .setPostprocessor(new IterativeBoxBlurPostProcessor(iterations, blurRadius))
            .build();
    AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
            .setOldController(simpleDraweeView.getController())
            .setImageRequest(request)
            .build();
    simpleDraweeView.setController(controller);
 }
}	 

必ずAndroidManifestでxmlに登録!!!
public class App extends Application {
@Override
public void onCreate() {
    super.onCreate();
    //      
    //Fresco.initialize(this);

    //    
    Fresco.initialize(this,ImagePipelineConfig.newBuilder(App.this)
            .setMainDiskCacheConfig(
                    DiskCacheConfig.newBuilder(this)
                            .setBaseDirectoryName("CacgPic")
                            .setBaseDirectoryPath(Environment.getExternalStoragePublicDirectory("photo"))
                            .build()
            )
            .build());
 }