Androidアルバム画像を選択してカット
2061 ワード
前言
Androidアプリでは、アルバム画像をアップロードする必要があることがよくあります.ここでは、アルバム画像の選択と切り取り方法を記録します.
アルバム選択画像
1.アルバムまたはファイルマネージャをアクティブにして、写真を取得します.コードは次のとおりです.
3.onActivity Resultでdata経由getParcelableExtra(「data」)は、ピクチャトリミング後のbitmapを取得し、bitmapをピクチャコントロールに割り当てることができます.
Androidアプリでは、アルバム画像をアップロードする必要があることがよくあります.ここでは、アルバム画像の選択と切り取り方法を記録します.
アルバム選択画像
1.アルバムまたはファイルマネージャをアクティブにして、写真を取得します.コードは次のとおりです.
private static final int TAKE_PICTURE_FROM_ALBUM = 1;
private void takePictureFromAlbum() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, TAKE_PICTURE_FROM_ALBUM);
}
2. startActivity ForResult()メソッドにより、onActivity Result()でピクチャのURIを取得し、ピクチャのURIをピクチャトリミング関数に渡すことができます.コードは以下の通りです. @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case TAKE_PICTURE_FROM_ALBUM:
if (data != null) {
cropPictureFromAlbum(data.getData());
}
break;
case PICTURE_CROP_CODE:
if (data != null) {
// bitmap
Bitmap bitmap = data.getParcelableExtra("data");
}
break;
default:
break;
}
}
}
private static final int TAKE_PICTURE_FROM_ALBUM = 1;
private void takePictureFromAlbum() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, TAKE_PICTURE_FROM_ALBUM);
}
private static final int PICTURE_CROP_CODE = 2;
private void cropPictureFromAlbum(Uri pictureUri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(pictureUri, "image/*");
intent.putExtra("crop", "true");
//
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 2);
//
intent.putExtra("outputX", 300);
intent.putExtra("outputY", 300);
//
intent.putExtra("noFaceDetection", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, PICTURE_CROP_CODE);
}
3.onActivity Resultでdata経由getParcelableExtra(「data」)は、ピクチャトリミング後のbitmapを取得し、bitmapをピクチャコントロールに割り当てることができます.