Я пытаюсь написать приложение, которое я возьму с камеры и использую. Вначале я использовалСъемка с родной камеры без SD-карты
Bitmap image = (Bitmap) data.getExtras(). Get ("data");
Однако я заметил, что это просто вернет миниатюру изображения. Так я обновил свой код, как:
public void takePhoto(){
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
File dir = context.getDir("directory", Context.MODE_PRIVATE);
File photo = new File(dir, "Pic.jpg");
mImageUri = Uri.fromFile(photo);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
startActivityForResult(intent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 0){
if(Activity.RESULT_OK == resultCode){
Uri selectedImage = mImageUri;
getContentResolver().notifyChange(selectedImage, null);
ContentResolver cr = getContentResolver();
Bitmap bitmap;
try {
bitmap=android.provider.MediaStore.Images.Media.getBitmap(cr, selectedImage);
displayIV.setImageBitmap(bitmap);
} catch (Exception e) {
// TODO: handle exception
}
}
}
}
Проблема после обновления кода он перестал называть onActivityResult функции после того, как я закончу с фото. После съемки фотографии я нажимаю кнопку DONE на экране камеры, но она не вызывает приложение обратно. Приложение остается на экране камеры.
Любая идея, что я делаю неправильно?
Нажмите кнопку BACK. Не требуется, чтобы приложение камеры немедленно возвращало управление вашему приложению. – CommonsWare
Кнопка BACK просто отменяет камеру. Он не вызывает функцию onActivityResult, где я буду использовать изображение, которое я взял, а также кнопка DONE вызывала приложение назад, когда я читал миниатюру из данных. –
Попробуйте использовать файл, который приложение для камеры может записать, так как оно не может быть записано в ваше запрошенное местоположение. Например, используйте 'getExternalFilesDir()' или 'getExternalCacheDir()'. Возможно, приложение камеры, которое вы используете, не вызывает вызов 'setResult()', если он не может записать изображение, которое вы запросили, и 'setResult()' - это то, что запускает 'onActivityResult()' в вашей деятельности. – CommonsWare