启动 activity 并传递 uri 数据
Starting an activity and passing uri data
在我的 onActivityResult 中,我有两个 if 语句,一个是从画廊获取图片,另一个是从相机获取图片。在我获得图片 uri 后,它会启动 adobe creative sdk 来编辑图像。得到编辑后的图像后,我想开始并将编辑后的图像传递给另一个activity。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//Gets the gallery image uri
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
editPic(selectedImage);
}
//gets Camera pic taken uri
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Image captured and saved to fileUri specified in the Intent
Uri mpicTaken = data.getData();
editPic(mpicTaken);
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
//edited image
Uri editedImageUri = data.getData();
/*
Intent intent = new Intent("com.ayyogames.photoapp.Share");
intent.putExtra("imageUri", editedImageUri);
startActivity(intent);
*/
}
public void editPic(Uri uri) {
Intent intent = new AdobeImageIntent.Builder(this)
.setData(uri)
.withOutputSize(MegaPixels.Mp10)
.withOutputQuality(100)
.build();
startActivityForResult(intent, IMG_CODE_EDIT);
}
您可以像这样将 Uri 存储为字符串
intent.putExtra("imageUri", editedImageUri.toString());
然后在新的activity中,把它转换回来
Uri imageUri = Uri.parse(extras.getString("imageUri"));
在我的 onActivityResult 中,我有两个 if 语句,一个是从画廊获取图片,另一个是从相机获取图片。在我获得图片 uri 后,它会启动 adobe creative sdk 来编辑图像。得到编辑后的图像后,我想开始并将编辑后的图像传递给另一个activity。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//Gets the gallery image uri
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
editPic(selectedImage);
}
//gets Camera pic taken uri
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Image captured and saved to fileUri specified in the Intent
Uri mpicTaken = data.getData();
editPic(mpicTaken);
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
//edited image
Uri editedImageUri = data.getData();
/*
Intent intent = new Intent("com.ayyogames.photoapp.Share");
intent.putExtra("imageUri", editedImageUri);
startActivity(intent);
*/
}
public void editPic(Uri uri) {
Intent intent = new AdobeImageIntent.Builder(this)
.setData(uri)
.withOutputSize(MegaPixels.Mp10)
.withOutputQuality(100)
.build();
startActivityForResult(intent, IMG_CODE_EDIT);
}
您可以像这样将 Uri 存储为字符串
intent.putExtra("imageUri", editedImageUri.toString());
然后在新的activity中,把它转换回来
Uri imageUri = Uri.parse(extras.getString("imageUri"));