Created
August 5, 2015 13:40
-
-
Save wlanjie/c2ccff3f5a93fb5f9064 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.fresco.android; | |
import com.freco.android.config.FrescoConfig; | |
public class Application extends android.app.Application { | |
@Override | |
public void onCreate() { | |
} | |
public static GenericDraweeHierarchy getGenericDraweeHierarchy() { | |
return FrescoConfig.initializeGenericDraweeHierarchy(getApplicationContext(), null); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.fresco.android.util; | |
import android.net.Uri; | |
import com.facebook.drawee.backends.pipeline.Fresco; | |
import com.facebook.drawee.controller.ControllerListener; | |
import com.facebook.drawee.generic.GenericDraweeHierarchy; | |
import com.facebook.drawee.generic.RoundingParams; | |
import com.facebook.drawee.interfaces.DraweeController; | |
import com.facebook.drawee.view.GenericDraweeView; | |
import com.facebook.imagepipeline.common.ResizeOptions; | |
import com.facebook.imagepipeline.image.ImageInfo; | |
import com.facebook.imagepipeline.request.ImageRequest; | |
import com.facebook.imagepipeline.request.ImageRequestBuilder; | |
import com.facebook.imagepipeline.request.Postprocessor; | |
import com.fresco.android.Application; | |
/** | |
* Created by wlanjie on 15/5/18. | |
* 图片加载库的工具类 | |
*/ | |
public final class ImageDecode { | |
/** | |
* 解析图片 | |
* @param uri 图片地址 | |
* @param draweeView 显示图片的View | |
*/ | |
public static void decodeImage(final String uri, final GenericDraweeView draweeView) { | |
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri)) | |
.build(); | |
final DraweeController controller = Fresco.newDraweeControllerBuilder() | |
.setOldController(draweeView.getController()) | |
.setImageRequest(request) | |
.build(); | |
draweeView.setHierarchy(Application.getGenericDraweeHierarchy()); | |
draweeView.setController(controller); | |
} | |
/** | |
* 解析图片 | |
* @param draweeView 显示图片的View | |
* @param controller 监听事件 | |
*/ | |
public static void decodeImage(final GenericDraweeView draweeView, final DraweeController controller) { | |
draweeView.setHierarchy(Application.getGenericDraweeHierarchy()); | |
draweeView.setController(controller); | |
} | |
/** | |
* 解析图片 | |
* @param uri 图片地址 | |
* @param draweeView 显示图片的View | |
* @param listener 监听事件 | |
*/ | |
public static void decodeImage(final String uri, final GenericDraweeView draweeView, final ControllerListener<? super ImageInfo> listener) { | |
final DraweeController controller = Fresco.newDraweeControllerBuilder() | |
.setControllerListener(listener) | |
.setUri(Uri.parse(uri)) | |
.build(); | |
draweeView.setHierarchy(Application.getGenericDraweeHierarchy()); | |
draweeView.setController(controller); | |
} | |
/** | |
* 解析图片并设置图片解析成功后的事件 | |
* @param uri 图片地址 | |
* @param draweeView 显示图片的View | |
* @param postprocessor 监听事件 | |
*/ | |
public static void decodeImageWithProcessor(final String uri, final GenericDraweeView draweeView, final Postprocessor postprocessor) { | |
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri)) | |
.setPostprocessor(postprocessor) | |
.build(); | |
final DraweeController controller = Fresco.newDraweeControllerBuilder() | |
.setOldController(draweeView.getController()) | |
.setImageRequest(request) | |
.build(); | |
draweeView.setHierarchy(Application.getGenericDraweeHierarchy()); | |
draweeView.setController(controller); | |
} | |
public static void decodeImageWithProcessor(final String uri, final GenericDraweeView draweeView, final float round, final Postprocessor postprocessor) { | |
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri)) | |
.setPostprocessor(postprocessor) | |
.build(); | |
final DraweeController controller = Fresco.newDraweeControllerBuilder().setOldController(draweeView.getController()).setImageRequest(request).build(); | |
final GenericDraweeHierarchy mHierarchy = Application.getGenericDraweeHierarchy(); | |
final RoundingParams mRoundingParams = RoundingParams.fromCornersRadius(round); | |
mHierarchy.setRoundingParams(mRoundingParams); | |
draweeView.setHierarchy(mHierarchy); | |
draweeView.setController(controller); | |
} | |
/** | |
* 解析图片并设置图片的宽和高 | |
* @param uri 图片地址 | |
* @param draweeView 显示图片的View | |
* @param width 图片的宽 | |
* @param height 图片的高 | |
*/ | |
public static void decodeImageWithWidthHeight(final String uri, final GenericDraweeView draweeView, final int width, final int height) { | |
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri)) | |
.setResizeOptions(new ResizeOptions(width, height)) | |
.build(); | |
final DraweeController controller = Fresco.newDraweeControllerBuilder() | |
.setOldController(draweeView.getController()) | |
.setImageRequest(request) | |
.build(); | |
draweeView.setHierarchy(Application.getGenericDraweeHierarchy()); | |
draweeView.setController(controller); | |
} | |
/** | |
* 解析图片并设置图片旋转至和屏幕方向一致 | |
* @param uri 图片的地址 | |
* @param draweeView 显示图片的View | |
*/ | |
public static void decodeImageWithAutoRotate(final String uri, GenericDraweeView draweeView) { | |
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri)) | |
.setAutoRotateEnabled(true) | |
.build(); | |
final DraweeController controller = Fresco.newDraweeControllerBuilder() | |
.setOldController(draweeView.getController()) | |
.setImageRequest(request) | |
.build(); | |
draweeView.setHierarchy(Application.getGenericDraweeHierarchy()); | |
draweeView.setController(controller); | |
} | |
/** | |
* 解析图片,设置的是一个正规的圆形 | |
* @param uri 图片地址 | |
* @param draweeView 显示图片的View | |
*/ | |
public static void decodeRoundImage(final String uri, final GenericDraweeView draweeView) { | |
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri)) | |
.build(); | |
final DraweeController controller = Fresco.newDraweeControllerBuilder().setOldController(draweeView.getController()).setImageRequest(request).build(); | |
final GenericDraweeHierarchy mHierarchy = Application.getGenericDraweeHierarchy(); | |
final RoundingParams mRoundingParams = RoundingParams.asCircle(); | |
mHierarchy.setRoundingParams(mRoundingParams); | |
draweeView.setHierarchy(mHierarchy); | |
draweeView.setController(controller); | |
} | |
/** | |
* 解析图片,可以设置圆角 | |
* @param uri 图片地址 | |
* @param draweeView 显示图片的View | |
* @param round 圆角 | |
*/ | |
public static void decodeRoundImage(final String uri, final GenericDraweeView draweeView, final float round) { | |
final GenericDraweeHierarchy mHierarchy = Application.getGenericDraweeHierarchy(); | |
final RoundingParams mRoundingParams = RoundingParams.fromCornersRadius(round); | |
mHierarchy.setRoundingParams(mRoundingParams); | |
draweeView.setHierarchy(mHierarchy); | |
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri)) | |
.build(); | |
final DraweeController controller = Fresco.newDraweeControllerBuilder().setOldController(draweeView.getController()).setImageRequest(request).build(); | |
draweeView.setController(controller); | |
} | |
/** | |
* 解析图片,可以设置圆角 | |
* @param uri 图片地址 | |
* @param draweeView 显示图片的View | |
* @param round 圆角 | |
*/ | |
public static void decodeRoundImage(final String uri, final GenericDraweeView draweeView, float topLeft, float topRight, float bottomRight, float bottomLeft) { | |
final GenericDraweeHierarchy mHierarchy = Application.getGenericDraweeHierarchy(); | |
final RoundingParams mRoundingParams = RoundingParams.fromCornersRadii(topLeft, topRight, bottomLeft, bottomRight); | |
mHierarchy.setRoundingParams(mRoundingParams); | |
draweeView.setHierarchy(mHierarchy); | |
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri)) | |
.build(); | |
final DraweeController controller = Fresco.newDraweeControllerBuilder().setOldController(draweeView.getController()).setImageRequest(request).build(); | |
draweeView.setController(controller); | |
} | |
/** | |
* 解析Gif图片 | |
* @param uri 图片地址 | |
* @param draweeView 显示图片的View | |
*/ | |
public static void decodeGifImage(final String uri, final GenericDraweeView draweeView) { | |
decodeGifImage(uri, draweeView, null); | |
} | |
/** | |
* 解析Gif图片 | |
* @param uri 图片地址 | |
* @param draweeView 显示图片的View | |
* @param listener 监听事件 | |
*/ | |
public static void decodeGifImage(final String uri, final GenericDraweeView draweeView, final ControllerListener<? super ImageInfo> listener) { | |
DraweeController controller = Fresco.newDraweeControllerBuilder() | |
.setUri(Uri.parse(uri)) | |
.setControllerListener(listener) | |
.build(); | |
draweeView.setHierarchy(Application.getGenericDraweeHierarchy()); | |
draweeView.setController(controller); | |
} | |
public static void decodeGifAutoPlayImage(final String uri, final GenericDraweeView draweeView) { | |
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri)) | |
.build(); | |
DraweeController controller = Fresco.newDraweeControllerBuilder() | |
.setImageRequest(request) | |
.setOldController(draweeView.getController()) | |
.build(); | |
draweeView.setHierarchy(Application.getGenericDraweeHierarchy()); | |
draweeView.setController(controller); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment