сохранить сделанную фотографию или выбранную фотографию из галереи в определенный каталог

В моем приложении я разрешаю пользователю изменить фотографию своего профиля, нажав changePhoto TextView

Он просто открывает диалог с двумя ImageViews

1-й на выбор из галереи

2-й, чтобы сделать фото

Я добавил разрешения для READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE и CAMERA, предоставленные пользователем.

мне нужно:

Если пользователь выбирает из галереи

  1. Откроет галерею
  2. Позвольте ему выбрать фото
  3. Скопируйте фотографию в определенный каталог на телефоне APP_NAME / images под его user_id, например 76hgjys65gh66tt.jpg
  4. Сохраните новый адрес фотографии в глобальной строке imageURL для сохранения в базе данных позже.

Если пользователь решит сделать фото

  1. Откроет камеру
  2. Позвольте ему сделать фото
  3. Сохраните фотографию в том же каталоге APP_NAME / images под тем же user_id.
  4. Сохраните новый адрес фотографии в той же глобальной строке imageURL

Я искал его и нашел много результатов о копировании фотографий и фотографировании, но я не могу объединить их вместе в своем приложении.

public static String imageUrl;   
public static final String PHOTO_DIR = getString(R.string.app_name) + "/images"

private void cameraOrLibraryDialog() {
    Dialog dialog = new Dialog(mContext);
    dialog.setContentView(R.layout.dialog_camera_or_gallery);
    int windowWidth = (int) (getResources().getDisplayMetrics().widthPixels);
    int windowHeight = (int) (getResources().getDisplayMetrics().heightPixels * 0.35);
    dialog.getWindow().setLayout(windowWidth, windowHeight);
    dialog.show();

    ImageView cameraIV = (ImageView) dialog.findViewById(R.id.ivCameraIcon);
    ImageView galleryIV = (ImageView) dialog.findViewById(R.id.ivLibraryIcon);

    cameraIV.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });

    galleryIV.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


        }
    });
}

Вы можете мне помочь...


person Ahmed Afifi    schedule 17.04.2018    source источник


Ответы (1)


Попробуй это:

private void AddImageInGalleryFunction() {
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    File f = new File(mCurrentPhotoPath);
    Uri contentUri = Uri.fromFile(f);
    mediaScanIntent.setData(contentUri);
    this.sendBroadcast(mediaScanIntent);
}
person Muhammad Usman    schedule 18.04.2018