2017-07-25 8 views
1

Ich muss ein Bild eines ImageButton auf ein in Firebase gespeichertes Bild setzen.Bild-ImageButton mit Picasso einstellen

ich sehe gerade die Daten in einem EditText in dieser Vorlage:

nameCompanyDB = FirebaseDatabase.getInstance().getReference().child("Company").child(user_id).child("name_company"); 

mNameCompany = (EditText) findViewById(R.id.edtNameCompany); 


nameCompanyDB.addListenerForSingleValueEvent(new ValueEventListener() { 

      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       mNameCompany.setText(dataSnapshot.getValue(String.class)); 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

Wie könnte ich ein gespeichertes Bild anzuzeigen. Ich habe folgende Bankverbindung:

fotoCompanyDB = FirebaseDatabase.getInstance().getReference().child("Company").child(user_id).child("photo"); 

fotoCompanyDB.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

     /* Set the image here */ 
     /* I would like to use Picasso */    


      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

Structure Picasso: 
Class Example: 
public void setImage(final Context c, final String image){ 

      final ImageView post_image = (ImageView) mView.findViewById(R.id.post_image); 

      /*Procedimento preparado para funcionar offline*/ 
      Picasso.with(c).load(image).networkPolicy(NetworkPolicy.OFFLINE).into(post_image, new Callback() { 
       @Override 
       public void onSuccess() { 

       } 

       @Override 
       public void onError() { 

        /*Processo para carregar e visualizar imagem - Ocorre quando estiver Online*/ 
        Picasso.with(c).load(image).into(post_image); 

       } 
      }); 

     } 
    } 

Jede Art und Weise diese Strukturvorlage zu verwenden, um das FireBox Ergebnis in der Image angezeigt werden?

Antwort

1

fand ich die Lösung

String urlFoto = dataSnapshot.getValue(String.class); 
Picasso.with(this).load(urlFoto).into(mSelectImage); 
2

Der einfachste Weg, dies zu erreichen, ist die Verwendung Glide, die ich Ihnen bitte empfehlen. Um dies zu erreichen, können Sie den folgenden Code verwenden:

Glide.with(post_image.getContext()) 
    .load(profilePhotoUrl) 
    .centerCrop().transform(newCircleTransform(post_image.getContext())) 
    .override(40,40) 
    .into(post_image); 

Vergessen Sie auch nicht diese Codezeile in den Abhängigkeiten Ihrer build.gradle Datei hinzuzufügen.

compile 'com.github.bumptech.glide:glide:3.7.0' 

Ich hoffe, es hilft.

+0

Ja, aber wie würde ich verwenden, um die oben nameCompanyDB oben beschriebene Struktur? @AlexMamo – TiagoIB

+0

Wenn Sie Picasso mit Glihe ersetzen, sollte gut funktionieren. Haben Sie einen Fehler? –

+0

Tut mir leid, ich konnte nicht irgendwie verloren gehen, wie ich das Ergebnis in EditText einstellen kann. @AlexMamo – TiagoIB