1
gespeichert anzuzeigen

Ich weiß, die Lösung liegt vor, wenn die Leute sagen, dass das Bild-Caching mit Tools wie Glide oder Picasso, können Sie die Bilder angezeigt werden. Aber ich habe das gleiche versucht und es wird nicht funktionieren.Android Glide und Volley: Kann Bilder in Firebase Speicher

Hier ist meine Implementierung von

Dateien Firebase Speicher Hochladen wird gut
if (uri != null) { 
     //upload to storage 
     StorageReference riversRef = imagesRef.child(uri.getLastPathSegment()); 
     UploadTask uploadTask = riversRef.putFile(uri); 
     // Register observers to listen for when the download is done or if it fails 
     uploadTask.addOnFailureListener(new OnFailureListener() { 
      @Override 
      public void onFailure(@NonNull Exception exception) { 
       // Handle unsuccessful uploads 
       Snackbar.make(coordinatorLayout, "Unable to process your request. Please try again.", Snackbar.LENGTH_SHORT).show(); 
      } 
     }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       // taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL. 
       Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl(); 
       if (downloadUrl != null) { 
        Date date = new Date(); 
        Locale locale = new Locale("en", "IN"); 
        SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy /h:mm a", locale); 
        String formattedDate = sdf.format(date); 

        HashMap<String, String> map = new HashMap<>(); 
        map.put("isXRead", String.valueOf(false)); 
        map.put("isYRead", String.valueOf(true)); 
        map.put("imgUrl", String.valueOf(downloadUrl)); 
        map.put("timestamp", formattedDate); 
        map.put("user", "X"); 
        ref.push().setValue(map); 
       } 
      } 
     }); 
    } 

Das Bild hochgeladen und gibt die URL, ähnlich wie

https://firebasestorage.googleapis.com/v0/b/private.appspot.com/o/Messenger_images%2F14076?alt=media&token=2164ec58-55c2-4b03-b97a-ebfd36e66593 

Hier ist, wie ich versuche, die angezeigt werden Bild mit Volley:

ImageRequest ir = new ImageRequest(message.getImgUrl(), new Response.Listener<Bitmap>() { 
      @Override 
      public void onResponse(Bitmap response) { 
       // callback 
       // new GlideOperations(context, img).glideMessenger(response); 
       img.setImageBitmap(response); 
      } 
     }, 100, 100, null, null); 
     //ir.setShouldCache(false); 
     AppController.getInstance().addToRequestQueue(ir); 

Hier ist, wie ich versuche, das Bild mit anzuzeigen Glide:

try { 
     Glide.with(mContext) 
       .load(object) 
       .thumbnail(0.5f) 
       .override(900, 400) 
       .crossFade(100) 
       .fitCenter() 
       .error(R.drawable.wallpaper) 
       .into(new SimpleTarget<GlideDrawable>() { 
        @Override 
        public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { 
         try { 
          mImageView.setImageDrawable(resource); 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 
        } 
       }); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Keine der oben scheint zu funktionieren. Schätze jede Hilfe.

Lösung Scheint, wie ich Problem mit dem ImageView hatte ich wurde mit. Danke für Ihre Hilfe.

+0

Ich habe ziemlich viel Erfahrung mit Picasso und Firebase Speicher, ich könnte helfen, wenn Sie bereit sind, Picasso einen anderen Versuch zu geben, lassen Sie es mich wissen. – RamithDR

+0

Es tut mir leid, aber glide scheint viel effizienter zu sein – silverFoxA

+0

Um ein in Firebase Storage gespeichertes Bild mit glide in ein imageView zu laden, verwende ich die Klasse 'FirebaseImageLoader' aus [die Antwort dieses Threads von Samuel] (https://groups.google.com/forum /? hl = de #! topic/firebase-talk/IrJACH038DI), es funktioniert perfekt und Sie müssen nicht die direkte öffentliche URL dieses Bildes – Wilik

Antwort

7

Die Bibliothek com.firebaseui:firebase-ui-storage:0.6.0 bietet die Möglichkeit, Firebase Storage-Images mit Glide zu laden.

+0

Bitte helfen Sie mir in dieser Ausgabe http://StackOverflow.com/q/42480626/3671509 –

Verwandte Themen