FileNotFoundException при обрезке фотографии - PullRequest
0 голосов
/ 01 июня 2010

Я пытаюсь обрезать фотографию для использования в живых обоях, но я получаю исключение FileNotFoundException, когда действие обрезки пытается сохранить мое новое обрезанное изображение.Вот код, который я использую:

File file = new File(getFilesDir(), "wallpaper.jpg");

Intent intent = new Intent("com.android.camera.action.CROP");
intent.setData(uri);

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

intent.putExtra("outputX", metrics.widthPixels * 2);
intent.putExtra("outputY", metrics.heightPixels);
intent.putExtra("aspectX", metrics.widthPixels * 2);
intent.putExtra("aspectY", metrics.heightPixels);
intent.putExtra("scale", true);
intent.putExtra("noFaceDetection", true);
intent.putExtra("output", Uri.parse("file:/" + file.getAbsolutePath()));

startActivityForResult(intent, REQUEST_CROP_IMAGE);

Файл wallpaper.jpg, похоже, существует в проводнике файлов DDMS, поэтому я не уверен, что делаю неправильно.Любой совет с благодарностью.

Ответы [ 2 ]

0 голосов
/ 02 июня 2010

getFilesDir () возвращает приватный каталог вашего приложения. Камера не может получить доступ к вашему личному каталогу. Чтобы сделать wallpaper.jpg доступным для камеры, поместите его в папку publix. Например, как Алекс сказал, что это может быть корень SD-карты. Фиксированный код будет:

File file = new File(Environment.getExternalStorageDirectory(),  "wallpaper.jpg");
0 голосов
/ 01 июня 2010

http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

Если вы используете API уровня 7 или ниже, используйте getExternalStorageDirectory (), чтобы открыть файл, представляющий корень внешнее хранилище. Вы должны тогда напишите свои данные в следующем Каталог:

/ Android / данные // файлы / Это ваш стиль Java имя пакета, например "Com.example.android.app". Если пользовательское устройство работает на уровне API 8 или больше, и они удаляют ваши приложение, этот каталог и все его содержимое будет удалено.

...