Создать путь к файлу в Android - PullRequest
0 голосов
/ 23 февраля 2019

Код при обрезке существующего изображения в галерее

 final Uri uri = result.getUri();
 StorageReference thumb_filepath = mStorage.child("Raw").child(UID + ".jpg");
 File thumb_filePath = new File(uri.getPath());
 Log.d("DFGHJKFGHJ", "CREATED FILEEEE" + thumb_filePath);

Результат Logcat

 02-23 13:51:20.053 11130-11130/com.appmaster.akash.messageplus D/DFGHJKFGHJ: CREATED FILEEEE/data/user/0/com.appmaster.akash.messageplus/cache/cropped9075402641648633426.jpg

Теперь я использовал тот же методдля получения изображения из firebase и преобразования его в uri, а затем в файл, но вывод отличается

код

Uri uri = null;
uri = Uri.parse(String.valueOf(url));
Log.d("DFGHJKFGHJ", "CREATED URI : " + uri);

File thumb_filePath = new File(uri.getPath());
Log.d("DFGHJKFGHJ", "CREATED FILEEEE" + thumb_filePath);

URI создается, но вывод файлаis

02-23 13:50:48.326 11130-11130/com.appmaster.akash.messageplus D/DFGHJKFGHJ: CREATED FILEEEE/v0/b/messageplus-cd647.appspot.com/o/hackerpic.jpg

Из-за этого следующая функция также не работает.ТАК кто-нибудь может мне помочь, например, получить первый вывод для FireBase-изображения?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Загрузить изображение из хранилища Firebase и сохранить локально:

private void downloadImgFromFStorageToLocalFile(StorageReference fileRef) {
    if (fileRef != null) {
        progressDialog.setTitle("Downloading...");
        progressDialog.setMessage(null);
        progressDialog.show();

        try {
            final File localFile = File.createTempFile("images", "jpg");

            fileRef.getFile(localFile).addOnSuccessListener(new 
                OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(FileDownloadTask.TaskSnapshot 
                 taskSnapshot) {
                    Bitmap bmp = 
                    BitmapFactory.decodeFile(localFile.getAbsolutePath());
                    imgViewProfile.setImageBitmap(bmp);
                    progressDialog.dismiss();
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception exception) {
                    progressDialog.dismiss();
                    Toast.makeText(MainActivity.this, exception.getMessage(), 
                    Toast.LENGTH_LONG).show();
                }
            }).addOnProgressListener(new 
                OnProgressListener<FileDownloadTask.TaskSnapshot>() {
                @Override
                public void onProgress(FileDownloadTask.TaskSnapshot 
                 taskSnapshot) {
                    // progress percentage
                    double progress = (100.0 * 
                      taskSnapshot.getBytesTransferred()) / 
                      taskSnapshot.getTotalByteCount();
                    // percentage in progress dialog
                    progressDialog.setMessage("Downloaded " + ((int) progress) 
                                                            + "%...");
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        Toast.makeText(MainActivity.this, "File ref is null", 
             Toast.LENGTH_LONG).show();
    }
}
0 голосов
/ 23 февраля 2019

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

    String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Folder_name";

    File folder = new File(path);
    if (!folder.exists()) {
        folder.mkdir();
    }


 Uri uri = Uri.fromFile(folder);
 File thumb_filePath = new File(uri.toString());
 assertEquals(folder.getAbsolutePath(), thumb_filePath .getAbsolutePath());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...