package com.example.basecore.util;
|
|
import android.app.Activity;
|
import android.content.Context;
|
import android.graphics.Bitmap;
|
import android.graphics.Canvas;
|
import android.graphics.Color;
|
import android.net.Uri;
|
import android.provider.MediaStore;
|
import android.util.DisplayMetrics;
|
import android.view.View;
|
import android.view.WindowManager;
|
|
import androidx.annotation.NonNull;
|
|
import org.jetbrains.annotations.NotNull;
|
|
/**
|
* @description:
|
*/
|
public class ImageUtils {
|
|
public static Uri getUriByView(Context context, View view) {
|
Bitmap bitmap = viewToBitmap(view, (Activity) context);
|
if (bitmap == null) {
|
return null;
|
}
|
|
return bitmapToUri(context, bitmap);
|
}
|
public static Uri bitmapToUri(Context context, @NonNull Bitmap bitmap) {
|
return Uri.parse(MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, null, null));
|
}
|
|
public static Bitmap viewToBitmap(View view, Activity activity) {
|
// WindowManager manager = activity.getWindowManager();
|
// DisplayMetrics metrics = new DisplayMetrics();
|
// manager.getDefaultDisplay().getMetrics(metrics);
|
// int width = metrics.widthPixels;
|
// int height = metrics.heightPixels;
|
//
|
// //测量使得view指定大小
|
// int measureWidth = View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY);
|
// int measureHeight = View.MeasureSpec.makeMeasureSpec(height, View.MeasureSpec.AT_MOST);
|
//
|
// view.measure(measureWidth, measureHeight);
|
// //调用layout方法布局后,可以得到view的尺寸
|
// view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
|
// Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
|
// Canvas canvas = new Canvas(bitmap);
|
// canvas.drawColor(Color.WHITE);
|
// view.draw(canvas);
|
|
view.buildDrawingCache();
|
Bitmap bitmap = view.getDrawingCache();
|
return bitmap;
|
}
|
|
@NotNull
|
public static String getTmpFilePath(@NotNull Activity mContext) {
|
// 生成一个临时文件路径
|
return mContext.getExternalCacheDir().getAbsolutePath() + "/tmp_up_cache.jpg";
|
}
|
}
|