Присвойте имя изображению при использовании камеры - PullRequest
1 голос
/ 02 апреля 2012

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

public void onLongPress(MotionEvent e) {
        // TODO Auto-generated method stub
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("new-photo-name.jpg")) );
        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

}
protected void onActivityResult1(int requestCode, int resultCode, Intent data) {
                    if (requestCode == CAMERA_PIC_REQUEST) {
                          Bitmap image = (Bitmap) data.getExtras().get("data");  
                    }   
}

Он открывает камеру, я могу сделать и сохранить фотографию, но не дает хорошего имени.Каждый раз, когда я сохраняю картинку, он дает ей другое имя, например, 1 name: "13333675392558.jpg".Я не понимаю, как он приходит с такими цифрами.

Почему мой код не применяет название: "new-photo-name.jpg"?

И / или чтотогда я ошибаюсь?

Спасибо, Bigflow

Ответы [ 2 ]

1 голос
/ 02 апреля 2012
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

- это строка, которая устанавливает имя файла. Вы должны изменить эту строку.

0 голосов
/ 02 апреля 2012

Я заработал, но пока не знаю точно такой же проблемы, но этот код работал для меня:

private Uri outputFileUri;
    public void onLongPress(MotionEvent e) {
        // TODO Auto-generated method stub
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        File file = new File(Environment.getExternalStorageDirectory(), "/DCIM/Camera/new-photo-name.jpg");

        outputFileUri = Uri.fromFile(file);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
        startActivityForResult(intent, TAKE_PICTURE);
    }

onLongPress как-то связан с действиями жеста (касания), вы также можете использовать здесь кнопку.

public void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (requestCode == TAKE_PICTURE){
            System.out.println("string of file name = "+outputFileUri.toString());
      }
}

Действительно маленький код, но работает как брелок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...