問題があります。カメラで写真を撮り、撮影した写真をトリミングできる画面を表示する必要があります。私はそのような機能を追加しました:
protected void callCropPhoto(Uri uri) {
try {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", avatar.getWidth());
intent.putExtra("aspectY", avatar.getHeight());
intent.putExtra("outputX", avatar.getWidth());
intent.putExtra("outputY", avatar.getHeight());
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP_PHOTO_REQUEST_CODE);
} catch (Exception ex) {
// Some devices can't support image cropping.
}
}
写真付きのカメラから結果を取得したら、撮影した写真に一時的な uri を指定してこの関数を呼び出します。通常、onActivityResult を呼び出すと、RESULT_OK とデータを取得します。すべて正常に動作します。しかし、ランドスケープモードの1つのデバイス(Androidバージョン2.3.4)では、RESULT_CANCELEDが表示され、トリミングのある画面が表示されません。何が問題ですか?