package com.yyquan.jzh.util;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by Jack on 2015/7/14.
*/
public class PhotoSelectedHelper {
public static final int TAKE_PHOTO = 2000;
public static final int PIC_PHOTO = 3000;
public static final int PHOTO_CROP = 4000;
public static String camera_path;
Activity mActivity;
private Uri captureUri;
private Uri cropUri;
public PhotoSelectedHelper(Activity activity) {
this.mActivity = activity;
}
public void imageSelection(String user, String action) {
if (action.equals("take")) {
intentCamera(user);
} else if (action.equals("pic")) {
intentPhoto();
}
}
private void intentCamera(String user) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
captureUri = getOutputMediaFileUri(mActivity, user);
intent.putExtra(MediaStore.EXTRA_OUTPUT, captureUri);
mActivity.startActivityForResult(intent, TAKE_PHOTO);
}
private void intentPhoto() {
// Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// mActivity.startActivityForResult(i, PICK_PHOTO);
Intent intentss = new Intent(Intent.ACTION_GET_CONTENT);
intentss.setType("image/*");
mActivity.startActivityForResult(intentss, PIC_PHOTO);
}
public Uri getCaptureUri() {
return captureUri;
}
public String getCapturePath() {
return captureUri.getPath();
}
/*public String getPickPath(Context context,Uri data){
String[] projection={MediaStore.Images.Media.DATA};
Cursor cursor=context.getContentResolver().query(data,projection,null,null,null);
cursor.moveToFirst();
int columnIndex=cursor.getColumnIndex(projection[0]);
String picturePath=cursor.getString(columnIndex);
cursor.close();
return picturePath;
}*/
public String getPickPath(Context context, Uri data) {
return PhotoURIUtils.getPath(context, data);
}
public String getCropPath() {
return cropUri.getPath();
}
public static Uri getOutputMediaFileUri(Context context, String user) {
File mediaStorageDir = new File(
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
context.getPackageName());
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("OutputMediaFileUri", "failed to create directory");
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
camera_path = mediaStorageDir.getPath() + File.separator + user + "_" + timeStamp
+ ".jpg";
File mediaFile = new File(camera_path);
return Uri.fromFile(mediaFile);
}
// public static String getRealPathFromURI(Context context, Uri contentUri) {
// String[] proj = {MediaStore.Images.Media.DATA};
// Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
// int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
// cursor.moveToFirst();
// return cursor.getString(column_index);
// }
public void cropImageUri(Uri uri, int outputX, int outputY, String user) {
cropUri = getOutputMediaFileUri(mActivity, user);
try {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", outputX);
intent.putExtra("outputY", outputY);
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, cropUri);
intent.putExtra("return-data", false);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", true);
mActivity.startActivityForResult(intent, PHOTO_CROP);
} catch (Exception e) {
}
}
}