Glide无法从url加载图片

问题描述:

我遇到了一个问题我使用Glide从url加载图片,但我需要进行验证,如果徽标url为null,则需要另一个url来获取图片,但它不是'牛逼的工作,我不知道为什么Glide无法从url加载图片

 @Override 
     public void onBindViewHolder(SearchHorizontalAdapter.ViewHolder holder, int position) { 

      holder.mTitle.setText(premiumsList.get(position).getName()); 

      if(premiumsList.get(position).getLogo_url_string()==null){ 
      Glide.with(this.activity).load(premiumsList.get(position).getUrl()).into(holder.mImg); 
       Log.d("",String.valueOf(premiumsList.get(position).getUrl())); 
      } 
else{ 
      Glide.with(this.activity).load(premiumsList.get(position).getLogo_url_string()).into(holder.mImg); 
    } 
     } 
+0

是什么this.activity?如果你在活动,你可以简单地尝试ActiivityName.this或如果你在片段只是尝试getActivity() –

+0

你可以提供任何形式的logcat输出,如果可能 – imaadhrizni

+0

它没有区别:/ –

编辑:请尝试这一点,并提供堆栈跟踪如果可能的话

@Override 
public void onBindViewHolder(SearchHorizontalAdapter.ViewHolder holder, int position) { 

    holder.mTitle.setText(premiumsList.get(position).getName()); 

    if(premiumsList.get(position).getUrl()!=null){ 

     Glide.with(this.activity).load(premiumsList.get(position).getUrl()) 
      .listener(new RequestListener<String, GlideDrawable>() { 
      @Override 
      public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { 
       Log.e("IMAGE_EXCEPTION", "Exception " + e.toString()); 
       return false; 
      } 

      @Override 
      public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { 
       Log.d("Sometimes the image is not loaded and this text is not displayed"); 
       return false; 
      } 
     }) 
     .into(holder.mImg); 
    } 
    else{  
     Glide.with(this.activity).load(premiumsList.get(position).getLogo_url_string()).into(holder.mImg); 
    } 
}  
+0

导致我的应用程序崩溃,该适配器将它传递给recylcler中的一个片段:/并且它只加载getUrl中的那些getLogo_url_string()确实会加载它们:/ –

+0

你也可以记录getLogo_url_string @HeberSolis – imaadhrizni

+0

你是对的让我试试这个哈哈,但我确定它和getUrl()是一样的,因为它也在cloudinary –

你必须照顾好小事情:

  1. 基于活动通行证正确的上下文/片段
  2. 使用.placeholder
  3. 用.error实现轻松识别问题
+0

我传递了更正的上下文,因为来自Logo_string_url的显示了它们,它只显示getUrl中的那些,我很抱歉,但是如何使用其他的?我很抱歉,如果问题是愚蠢的,但我刚开始使用Glide,也是android:/ –

+0

下面是一个例子:https://stackoverflow.com/a/39789724/2162226 – gnB