Android Actionの使用例
Androidはアクションに基づいて機能を実現します.
package com.uwo.tools.aibum.local.utils;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import java.io.File;
/**
* Created by SRain on 2015/12/11.
* <p/>
* Action
* 1.
* 2.
* 3.
*/
public class ActionUtils {
public static final int GET_IMAGE_FROM_PHONE = 5002; //
public static final int CROP_IMAGE = 5003; //
public static final int OPEN_CAMERA_IMAGE_URI = 5100; // uri
public static final int OPEN_CAMERA_IMAGE_PATH = 5101; //
public static final int OPEN_CAMERA_IMAGE_THUMB = 5102; //
public static final int OPEN_CAMERA_IMAGE_NO_RESULT = 5103; //
/**
*
* , Uri
*
* @param activity
*/
public static void openCameraImage(final Activity activity) {
ImageUriUtils.imageUriFromCamera = ImageUriUtils.createImagePathUri(activity);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, ImageUriUtils.imageUriFromCamera);
activity.startActivityForResult(intent, OPEN_CAMERA_IMAGE_URI);
}
/**
*
* ,
*
* @param activity
* @param path
*/
public static void openCameraImage(final Activity activity, String path) {
File file = new File(path);
if (!file.exists()) {
file = new File(Environment.getExternalStorageDirectory(), path);
}
Uri uri = Uri.fromFile(file);
ImageUriUtils.imageUriFromCamera = ImageUriUtils.createImagePathUri(activity);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
activity.startActivityForResult(intent, OPEN_CAMERA_IMAGE_PATH);
}
/**
*
* , uri,
* <p/>
*
* @param activity
* @return onActivityResult Bitmap bitmap = (Bitmap) data.getExtras().get("data");
*/
public static void openCameraImageThumb(final Activity activity) {
ImageUriUtils.imageUriFromCamera = ImageUriUtils.createImagePathUri(activity);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
activity.startActivityForResult(intent, OPEN_CAMERA_IMAGE_THUMB);
}
/**
*
*/
public static void openCameraImageNoResult(final Activity activity) {
Intent intent = new Intent(); //
intent.setAction("android.media.action.STILL_IMAGE_CAMERA");
activity.startActivity(intent);
}
/**
*
*
* @param activity
*/
public static void openLocalImage(final Activity activity) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
activity.startActivityForResult(intent, GET_IMAGE_FROM_PHONE);
}
/**
*
*
* @param activity
* @param srcUri
*/
public static void cropUriImage(Activity activity, Uri srcUri) {
ImageUriUtils.cropImageUri = ImageUriUtils.createImagePathUri(activity);
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(srcUri, "image/*");
intent.putExtra("crop", "true");
////////////////////////////////////////////////////////////////
// 1. , ( )
////////////////////////////////////////////////////////////////
// 2. (aspect) , ,
////////////////////////////////////////////////////////////////
// 3. (output) ,
////////////////////////////////////////////////////////////////
// 4. (aspect) (output) , ,
// , , ,
// , ,
////////////////////////////////////////////////////////////////
// aspectX aspectY
// intent.putExtra("aspectX", 1);
// intent.putExtra("aspectY", 1);
// outputX outputY
// intent.putExtra("outputX", 300);
// intent.putExtra("outputY", 100);
// return-data true , bitmap , , false
// return-data false , bitmap, MediaStore.EXTRA_OUTPUT uri
Log.e("srcUri", srcUri.toString());
intent.putExtra(MediaStore.EXTRA_OUTPUT, ImageUriUtils.cropImageUri);
Log.e("cropImageUri", ImageUriUtils.cropImageUri.toString());
intent.putExtra("return-data", true);
activity.startActivityForResult(intent, CROP_IMAGE);
}
}