0

我是使用Firebase存儲並面臨在RecyclerView中顯示圖像時遇到問題的新手。我已使用FirebaseRecyclerAdapter顯示我的數據。數據和圖片網址存儲在Firebase數據庫中。問題是隻有圖像沒有在RecyclerView中顯示。無法在Firebase存儲中存儲的RecyclerView中顯示圖像(僅限於)

你能提供給我任何幫助,得到這個工作將是巨大的。謝謝。

下面是我的回收站活動代碼:

public class DownloadActivity extends AppCompatActivity { 

ScaleAnimation shrinkAnim; 
private RecyclerView mRecyclerView; 
private TextView tvNoImages; 
private static final String TAG = "DownloadActivty"; 


//Getting reference to Firebase Database 
DatabaseReference database = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference childref; 
private static StorageReference mStorageRef; 

//private static final String userId = "53"; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.downlad_activtiy_layout); 
    childref=database.child("Photos").getRef(); 

    mStorageRef = FirebaseStorage.getInstance().getReference(); 
    //Initializing our Recyclerview 
    mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); 
    tvNoImages = (TextView) findViewById(R.id.tv_no_image); 
    //scale animation to shrink floating actionbar 
    shrinkAnim = new ScaleAnimation(1.15f, 0f, 1.15f, 0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 

    Log.i(TAG, "Set firebase adapter"); 
    FirebaseRecyclerAdapter<Image_model,ImageViewHolder> adapter = new FirebaseRecyclerAdapter<Image_model, ImageViewHolder>(
      Image_model.class, R.layout.image_item, ImageViewHolder.class, 
      //referencing the node where we want the database to store the data from our Object 
      database 
    ) 
    { 
     @Override 
     protected void populateViewHolder(ImageViewHolder viewHolder, Image_model model, int position) 
     { 
      Log.i(TAG, "Populate Image"); 
      viewHolder.bindImage(model); 
     } 
    }; 

    mRecyclerView.setAdapter(adapter); 
    mRecyclerView.setHasFixedSize(true); 
    mRecyclerView.setLayoutManager (new LinearLayoutManager(this)); 

//ViewHolder for Firebase UI 
public static class ImageViewHolder extends RecyclerView.ViewHolder{ 

    TextView tvUserName; 
    TextView tvImageName; 
    RatingBar ratingBar; 
    ImageView ivImage; 
    ImageView image; 
    View viewHolder; 
    Context mContext; 

    public ImageViewHolder(View v) { 
     super(v); 
     viewHolder=v; 
     mContext = v.getContext(); 
     } 
    public void bindImage(Image_model model) 
    { 
     tvUserName=(TextView)viewHolder.findViewById(R.id.user_name); 
     tvImageName = (TextView) viewHolder.findViewById(R.id.image_name); 
     ratingBar = (RatingBar) viewHolder.findViewById(R.id.like); 
     ivImage = (ImageView) viewHolder.findViewById(R.id.img); 

     tvUserName.setText(model.getUserName()); 
     tvImageName.setText(model.getImageName()); 
     ratingBar.setRating(model.getImageLike()); 
     Picasso.with(mContext).load(model.getImage()).into(ivImage); 
     //Glide.loadImage(model.getImage(),ivImage); 

    } 
} 
} 

,這是我的模型類

public class Image_model { 

private String UserName; 
private String ImageName; 
private String ImageUrl; 
private int ImageLike; 

public Image_model(){ 

} 
public Image_model(String UserName,String ImageName,String ImageUrl,int ImageLike){ 
    this.UserName=UserName; 
    this.ImageName = ImageName; 
    this.ImageUrl = ImageUrl; 
    this.ImageLike = ImageLike; 
} 

public String getUserName() { 
    return UserName; 
} 

public void setUserName(String UserName) { 
    this.UserName = UserName; 
} 

public String getImageName() { 
    return ImageName; 
} 

public void setImageName(String ImageName) { 
    this.ImageName = ImageName; 
} 

public String getImage() { 
    return ImageUrl; 
} 

public void setImage(String ImageUrl) { 
    this.ImageUrl = ImageUrl; 
} 

public int getImageLike() { 
    return ImageLike; 
} 

public void setImageLike(int ImageLike) { 
    this.ImageLike = ImageLike; 
} 
} 
+0

,請問您對日誌顯示?任何你不使用Glide的原因,這是優秀的圖像加載庫? –

+0

這是我的日誌的副本:跳過38幀!應用程序可能在其主線程上做了太多工作。 沒有setter /對的ImageUrl領域階級發現hb.iart.Image_model階級發現 爲-KZQ17zHCGfv04PH2GBJ沒有setter /場hb.iart.Image_model階級發現 爲ImageLikes沒有setter /場hb.iart.Image_model 沒有setter /字段爲-KZPyuaaHsIRyLMrYboX在類上找到hb.iart.Image_model 填充圖片 –

+0

我也試過滑翔,但我面臨與它的問題。 @DougStevenson –

回答

0

我不知道你在你的bindImage方法裏面做的事情。但請記住,你是從你的模式,而不是圖像本身獲取和IMAGEURL。我建議你使用Glide庫設置你的形象從網址和ImageView的。同時,請記住您的火力地堡控制檯中,你應該使用「下載網址」,而不是你的存儲參考。像

https://firebasestorage.googleapis.com/v0/b/yourAwesomeDatabase ....

使用im滑翔設置從火力地堡我的圖片在我的應用程序,我用這個方法,希望它會幫助你:

/** 
    * Load an image with default values and default placeholder. 
    * @param url photo Url. 
    * @param imageView target view to load the desired image. 
    */ 
    public static void loadImage(String url, ImageView imageView) { 
     Context context = imageView.getContext(); 
     ColorDrawable cd = new ColorDrawable(ContextCompat.getColor(context, R.color.app_grey)); 
     Glide.with(context) 
     .load(url) 
     .placeholder(cd) 
     .crossFade() 
     .centerCrop() 
     .into(imageView); 
    } 
+0

我編輯了我的帖子並添加了bindImage()方法的代碼。我正在使用畢加索在回收視圖中加載圖像。 @Francisco杜丁加西亞 –

相關問題