content: package com.zht.baseproject.utils;
  
  import android.graphics.Bitmap;
  import android.graphics.BitmapFactory;
  import android.net.Uri;
  
  import java.io.BufferedInputStream;
  import java.io.File;
  import java.io.FileInputStream;
  import java.net.URI;
  
  /**
   * Created by ZHT on 2017/6/2.
   * Bitmap相关处理工具类
   */
  
  public class BitmapUtils {
  
      public static Bitmap decodeUriAsBitmap(Uri uri) {
          Bitmap bitmap = null;
          try {
              BufferedInputStream in = new BufferedInputStream(new FileInputStream(new File(new URI(uri.toString()).getPath())));
              BitmapFactory.Options options = new BitmapFactory.Options();
              options.inJustDecodeBounds = true;
              BitmapFactory.decodeStream(in, null, options);
              in.close();
              int i = 0;
              while (true) {
                  if ((options.outWidth >> i <= 1000)
                          && (options.outHeight >> i <= 1000)) {
                      in = new BufferedInputStream(
                              new FileInputStream(new File(new File(new URI(uri.toString())).getPath())));
                      options.inSampleSize = (int) Math.pow(2.0D, i);
                      options.inJustDecodeBounds = false;
                      bitmap = BitmapFactory.decodeStream(in, null, options);
                      break;
                  }
                  i += 1;
              }
  
          } catch (Exception e) {
              e.printStackTrace();
          }
          return bitmap;
      }
  }
  