Android 在 samsung s4 上发布裁剪图像
Android issue crop image on samsung s4
我正在尝试让裁剪图像在 Samsung s4 上工作,但它没有显示裁剪屏幕。
这是我正在使用的代码。
private void openCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
// ******** code for crop image
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 3);
intent.putExtra("aspectY", 4);
intent.putExtra("outputX", 180);
intent.putExtra("outputY", 220);
try {
intent.putExtra("return-data", true);
startActivityForResult(intent, 1);
} catch (ActivityNotFoundException e) {
// Do nothing for now
String s = e.getMessage();
String test = e.getLocalizedMessage();
}
}
您使用的 Intent 是拍摄图像。
您需要先捕获图像,然后在其上应用裁剪。
你可以这样做。
private void openCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
try {
intent.putExtra("return-data", true);
startActivityForResult(intent, 1);
}
catch (ActivityNotFoundException e) {
// Do nothing for now
}
}
onActivityResult 获取捕获的图像。在上面应用裁剪。
private void performCrop() {
try {
Intent cropIntent = new Intent("com.android.camera.action.CROP"); cropIntent.setDataAndType(mUri, "image/*");
// set crop properties
cropIntent.putExtra("crop", "true");
// indicate aspect of desired crop
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
// indicate output X and Y
cropIntent.putExtra("outputX", 150);
cropIntent.putExtra("outputY", 150);
// retrieve data on return
cropIntent.putExtra("return-data", true);
// start the activity - we handle returning in onActivityResult
startActivityForResult(cropIntent, 12);
}
// respond to users whose devices do not support the crop action
catch (ActivityNotFoundException anfe) {
// display an error message
String errorMessage = "Whoops - your device doesn't support the crop action!";
Toast.makeText(Signature.this, errorMessage, Toast.LENGTH_SHORT)
.show();
}
}
我正在尝试让裁剪图像在 Samsung s4 上工作,但它没有显示裁剪屏幕。
这是我正在使用的代码。
private void openCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
// ******** code for crop image
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 3);
intent.putExtra("aspectY", 4);
intent.putExtra("outputX", 180);
intent.putExtra("outputY", 220);
try {
intent.putExtra("return-data", true);
startActivityForResult(intent, 1);
} catch (ActivityNotFoundException e) {
// Do nothing for now
String s = e.getMessage();
String test = e.getLocalizedMessage();
}
}
您使用的 Intent 是拍摄图像。 您需要先捕获图像,然后在其上应用裁剪。 你可以这样做。
private void openCamera() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
try {
intent.putExtra("return-data", true);
startActivityForResult(intent, 1);
}
catch (ActivityNotFoundException e) {
// Do nothing for now
}
}
onActivityResult 获取捕获的图像。在上面应用裁剪。
private void performCrop() {
try {
Intent cropIntent = new Intent("com.android.camera.action.CROP"); cropIntent.setDataAndType(mUri, "image/*");
// set crop properties
cropIntent.putExtra("crop", "true");
// indicate aspect of desired crop
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
// indicate output X and Y
cropIntent.putExtra("outputX", 150);
cropIntent.putExtra("outputY", 150);
// retrieve data on return
cropIntent.putExtra("return-data", true);
// start the activity - we handle returning in onActivityResult
startActivityForResult(cropIntent, 12);
}
// respond to users whose devices do not support the crop action
catch (ActivityNotFoundException anfe) {
// display an error message
String errorMessage = "Whoops - your device doesn't support the crop action!";
Toast.makeText(Signature.this, errorMessage, Toast.LENGTH_SHORT)
.show();
}
}