/** * 跳转至系统相册 * * @param activity * 活动实例 * @param requestCode * 请求码 */ public static void startSystemAlbumForResult(Activity activity, int requestCode) { Intent intent = new Intent(Intent.ACTION_PICK, Media.EXTERNAL_CONTENT_URI); activity.startActivityForResult(intent, requestCode); }
/** * 调用系统相机 * * @param activity * 活动实例 * @param requestCode * 请求码 */ public static void startSystemCameraForResult(Activity activity, int requestCode) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); activity.startActivityForResult(intent, requestCode); }
/** * 启动系统截图页面 * * @param activity * 当前活动实例 * @param requestCode * 请求码 * @param data * 相片Uri地址 * @param width * 剪裁后图片的宽 * @param height * 剪裁后图片的高 */ public static void startPhotoZoomForResult(Activity activity, int requestCode, Uri data, int width, int height) { Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(data, "image/*"); // crop为true时表示显示的view可以剪裁 intent.putExtra("crop", "true"); // aspectX aspectY 是宽高的比例 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); // outputX,outputY 是剪裁图片的宽高 intent.putExtra("outputX", width); intent.putExtra("outputY", height); intent.putExtra("return-data", true); activity.startActivityForResult(intent, requestCode); }
/** * 获取系统相册返回的图片路径 * * @param context * 上下文对象 * @param data * 携带数据的Intent对象 * @return 图片本地路径 */ public static String getAlbumImgPath(Context context, Intent data) { Uri selectedImage = data.getData(); if (selectedImage == null) { return null; } String[] filePathColumns = { MediaStore.Images.Media.DATA }; Cursor c = context.getContentResolver().query(selectedImage, filePathColumns, null, null, null); c.moveToFirst(); int columnIndex = c.getColumnIndex(filePathColumns[0]); String picturePath = c.getString(columnIndex); c.close(); return picturePath; }
/** * 获取系统相机返回的图片Bitmap对象 * * @param context * 上下文对象 * @param data * 携带数据的Intent对象 * @return 图片Bitmap对象 */ public static Bitmap getCameraImgBitmap(Context context, Intent data) { Bundle bundle = data.getExtras(); if (bundle != null) { return (Bitmap) bundle.get("data"); } return null; }