Upload an image from Firebase using Picasso to ImageView in Infowindow, Picasso only shows placeholder

I am trying to load an image from my Firebase Storage using Picasso in Imageview, which is placed in InfoWindowAdapter from a marker.

I am very desperate. The problem is that Picasso only shows the placeholder icon.

My code for is FirebaseStorageRefernceas follows: Firebase blog post :

 StorageReference load = getImage(id);

 load.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
     @Override
     public void onSuccess(Uri uri) {

         downloadUri = uri;

     }
 }).addOnFailureListener(new OnFailureListener() {
     @Override
     public void onFailure(@NonNull Exception e) {
         Log.e("Failure",e.toString());
     }
 });

The download I receive is valid and works fine. Now I am using this downloadUri for Picasso.

 Picasso picasso = new Picasso.Builder(getApplicationContext()).listener(new Picasso.Listener() {
    @Override
    public void onImageLoadFailed(Picasso picasso, Uri uri, Exception e) {
        e.printStackTrace();
    }
}).build();
picasso.setLoggingEnabled(true);
picasso.load(downloadUri).placeholder(R.drawable.toxic_bait_icon).fit().into(thump, new MarkerCallback(marker));

Regarding the answer, stack overflow

public class MarkerCallback implements Callback {

com.google.android.gms.maps.model.Marker marker = null;


MarkerCallback(Marker marker)
{

    this.marker = marker;

}


@Override
public void onError(){
    Log.e(getClass().getSimpleName(), "Error loading thumbnail!");
}

@Override
public void onSuccess(){
    Log.d("onSuccess","Picasso Callback");
    if(marker != null && marker.isInfoWindowShown()){

        Log.d("onSuccess","Picasso Callback in if");
        marker.hideInfoWindow();
        marker.showInfoWindow();

    }
}}

, Log.d onSuccess , . , onSucess , Log.d LogCat.

, Picasso , , , .

picasso.setLoggingEnabled(true);

, , , ImageView Infowindow Placeholder.

, , , , , , 652,86 .

PS: Picasso , . :

picasso.setIndicatorsEnabled(true);

Picasso 2.5.2. , , Picasso . , - . .

: , , .

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
    android:name="android.permission.INTERNET"/>
<uses-permission
    android:name="android.permission.READ_SYNC_SETTINGS"/>
<uses-permission
    android:name="android.permission.WRITE_SYNC_SETTINGS"/>
<uses-permission
    android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

, Picasso , logcat. , , -. , , .

, .

, , . . .

+5
3

? Firebase getDownloadUrl():

 StorageReference load = getImage(id);

 load.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        // Got the download URL for 'users/me/profile.png'
        // Pass it to Picasso to download, show in ImageView and caching
        Picasso.with(context).load(uri.toString()).into(imageView);
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle any errors
    }
});
+5

Kotlin Task<Uri> :

fun Task<Uri>.loadIntoPicasso(imageView: ImageView){
    addOnSuccessListener { Picasso.with(imageView.context).load(it).into(imageView) }
}
0

@Override public void onBindViewHolder (ViewHolder viewHolder, final int i) {

    viewHolder.sda_user_order_card_food_name.setText(mProducts.get(i).sda_Name);
    viewHolder.sda_user_order_card_shop_tile.setText(mProducts.get(i).sda_Title);
    viewHolder.sda_user_order_card_food_price.setText(mProducts.get(i).sda_Food_Price);
    viewHolder.sda_user_order_card_delivery_price.setText(mProducts.get(i).sda_Delivery_Price);
    viewHolder.sda_user_order_card_food_rating.setRating(Float.parseFloat(mProducts.get(i).sda_Rating));

    Picasso.with(mContext).load(mProducts.get(i).imagePath).placeholder(R.drawable.loading).error(R.drawable.loading).into(viewHolder.sda_user_order_card_img);

}

,

0

Source: https://habr.com/ru/post/1656932/


All Articles