2016-07-03 5 views
1

У меня есть приложение, которое позволяет пользователям загружать изображения в ведро Firebase, затем я получаю URL-адрес загружаемого файла изображения и добавляю его в базу данных firebase. URL-адрес в форме: - https://firebasestorage.googleapis.com/v0/b/bucket_name.appspot.com/o/filename?alt=media&token=tokenНевозможно показать изображение в ImageView из хранилища Firebase

Затем я пытаюсь загрузить изображения в RecyclerView с помощью Glide, но я не могу это сделать, и он не может отобразить изображение.

Как я могу получить абсолютный URL изображения, который заканчивается в .png или .jpeg и т.д., которые можно легко использовать для загрузки image.As насколько я знаю, проблема с URL

+1

Если вы имеете уже попробовал что-то, что не сработало, отредактируйте свой вопрос, чтобы включить минимальный код для воспроизведения вашей проблемы. См. [MCVE] (http://stackoverflow.com/help/mcve). Для минимального примера, который использует Glide и * does *, см. Код [Отладка для приложений в I/O] (https://www.youtube.com/watch?v=xAsvwy1-oxE): https: //gist.github.com/puf/f49a1b07e92952b44f2dc36d9af04e3c –

+0

На самом деле Основная проблема заключается не в скольжении, а в ссылке для загрузки firebase. Ссылка Ending в .png может быть загружена в это изображение, но всякий раз, когда я, но ссылка на загрузку firebase, изображение не загружается –

ответ

2

Чтобы получить изображения формируют камера

    Intent i = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
        startActivityForResult(i, 3); 

Чтобы получить FilePath образа

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == PICK_FILE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) { 

     String path=String.valueOf(data.getData()); 
     file = Uri.fromFile(new File(path)); 

Создание метаданных файла

metadata = new StorageMetadata.Builder() 
    .setContentType("image/jpeg") 
    .build(); 

Загрузить файл и метаданные в пути «изображений/avator.jpg»

uploadTask = storageRef.child("images/"+file.getLastPathSegment()).putFile(file, metadata); 

Прислушайтесь изменения состояния, ошибок и завершения загрузки.

uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() { 
@Override 
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) { 
    double progress = (100.0 * taskSnapshot.getBytesTransferred())/taskSnapshot.getTotalByteCount(); 
    System.out.println("Upload is " + progress + "% done"); 
} 
}).addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() { 
@Override 
public void onPaused(UploadTask.TaskSnapshot taskSnapshot) { 
    System.out.println("Upload is paused"); 
} 
}).addOnFailureListener(new OnFailureListener() { 
@Override 
public void onFailure(@NonNull Exception exception) { 
    // Handle unsuccessful uploads 
} 
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
@Override 
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
    // Handle successful uploads on complete 
    Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl(); 

} 

});

Чтобы загрузить изображение с помощью Glide Library

Glide.with(getActivity()) 
.load(new File(downloadUrl)) // Uri of the picture 
.into(Imageview); 
0

С Пикассо вы можете загрузить простое изображение с помощью:

Picasso.with(Activity.this).load("your url image").into(imageView); 

Нужна добавить в Поляне:

compile 'com.squareup.picasso:picasso:2.5.2' 
Смежные вопросы