package com.dollearn.student.utils;
|
|
import android.app.Activity;
|
import android.graphics.Bitmap;
|
import android.net.Uri;
|
import android.provider.MediaStore;
|
import android.text.TextUtils;
|
import android.util.Log;
|
|
import com.facebook.common.util.UriUtil;
|
import com.facebook.drawee.backends.pipeline.Fresco;
|
import com.facebook.drawee.backends.pipeline.PipelineDraweeController;
|
import com.facebook.drawee.controller.AbstractDraweeController;
|
import com.facebook.drawee.interfaces.DraweeController;
|
import com.facebook.drawee.view.SimpleDraweeView;
|
import com.facebook.imagepipeline.common.ResizeOptions;
|
import com.facebook.imagepipeline.postprocessors.IterativeBoxBlurPostProcessor;
|
import com.facebook.imagepipeline.request.ImageRequest;
|
import com.facebook.imagepipeline.request.ImageRequestBuilder;
|
|
/**
|
* Created by Administrator on 2018/1/23.
|
*/
|
|
public class ImageUtils {
|
|
//加载本地图片
|
public static void loadDrawable(SimpleDraweeView draweeView, int resId) {
|
Uri uri = new Uri.Builder()
|
.scheme(UriUtil.LOCAL_RESOURCE_SCHEME)
|
.path(String.valueOf(resId))
|
.build();
|
DraweeController controller = Fresco.newDraweeControllerBuilder()
|
.setUri(uri)
|
.setOldController(draweeView.getController())
|
.build();
|
draweeView.setController(controller);
|
}
|
|
// public static void loadUri(ImageView draweeView, Uri uri){
|
// draweeView.setImageURI(uri);
|
// }
|
|
public static void loadUri(SimpleDraweeView draweeView, String uri) {
|
|
DraweeController controller = Fresco.newDraweeControllerBuilder()
|
.setUri(uri)
|
.setAutoPlayAnimations(true)
|
.build();
|
draweeView.setController(controller);
|
// draweeView.setImageURI(uri);
|
}
|
|
public static void loadSmallUri(SimpleDraweeView draweeView, String uri) {
|
int width = 100, height = 100;
|
if (TextUtils.isEmpty(uri)) {
|
return;
|
}
|
Uri uri1 = Uri.parse(uri);
|
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri1)
|
.setResizeOptions(new ResizeOptions(width, height))
|
.build();
|
PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
|
.setOldController(draweeView.getController())
|
.setImageRequest(request)
|
.build();
|
draweeView.setController(controller);
|
}
|
|
/**
|
* 以高斯模糊显示。
|
*
|
* @param draweeView View。
|
* @param url url.
|
* @param iterations 迭代次数,越大越魔化。
|
* @param blurRadius 模糊图半径,必须大于0,越大越模糊。
|
*/
|
public static void showUrlBlur(SimpleDraweeView draweeView, String url, int iterations, int blurRadius) {
|
try {
|
Uri uri = Uri.parse(url);
|
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
|
.setPostprocessor(new IterativeBoxBlurPostProcessor(iterations, blurRadius))
|
.build();
|
AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
|
.setOldController(draweeView.getController())
|
.setImageRequest(request)
|
.build();
|
draweeView.setController(controller);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
//转换为bitmap
|
public static Bitmap getBitmapFromUri(Activity activity, Uri uri) {
|
try {
|
// 读取uri所在的图片
|
Bitmap bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), uri);
|
return bitmap;
|
} catch (Exception e) {
|
Log.e("[Android]", e.getMessage());
|
Log.e("[Android]", "目录为:" + uri);
|
e.printStackTrace();
|
return null;
|
}
|
}
|
|
public static Uri getUriforBitmap(Activity activity, Bitmap bitmap) {
|
try {
|
// 读取uri所在的图片
|
Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(activity.getContentResolver(), bitmap, null, null));
|
return uri;
|
} catch (Exception e) {
|
Log.e("[Android]", e.getMessage());
|
e.printStackTrace();
|
return null;
|
}
|
|
}
|
}
|