package com.igo.user.utils;
|
|
import android.annotation.SuppressLint;
|
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 android.widget.ImageView;
|
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
import com.bumptech.glide.request.RequestOptions;
|
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;
|
import com.igo.user.IGoApplication;
|
import com.igo.user.R;
|
import com.igo.user.views.textbanner.utils.DisplayUtils;
|
|
/**
|
* 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;
|
}
|
|
}
|
|
/***
|
* 加载图片
|
*/
|
@SuppressLint("CheckResult")
|
public static void load(ImageView imageView, String url, int placeholder, int error, int radius) {
|
Glide.with(imageView)
|
.load(url)
|
.apply(getRequestOption(radius))
|
.placeholder(placeholder)
|
.error(error)
|
.into(imageView);
|
}
|
private static RequestOptions getRequestOption(int radius) {
|
RequestOptions chatcricleFoursUserHead;
|
DiskCacheStrategy diskCacheStrategy = DiskCacheStrategy.RESOURCE;
|
if (radius == 0) {
|
chatcricleFoursUserHead = new RequestOptions()
|
.error(R.color.gray)
|
.placeholder(R.color.gray)
|
.diskCacheStrategy(diskCacheStrategy)
|
.centerCrop();
|
} else {
|
chatcricleFoursUserHead = new RequestOptions()
|
.error(R.color.gray)
|
.placeholder(R.color.gray)
|
.diskCacheStrategy(diskCacheStrategy)
|
.apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(DisplayUtils.dip2px(IGoApplication.Companion.getAppContext(), radius))));
|
}
|
return chatcricleFoursUserHead;
|
}
|
}
|