gpt4 book ai didi

java - 尽管日志中的占位符图像和 URL 都正常工作,但 Glide 不会从 URL 加载图像

转载 作者:行者123 更新时间:2023-12-02 01:34:30 24 4
gpt4 key购买 nike

我正在尝试通过 Glide 库将图像加载到 RecyclerView 对象中,但无论我进行什么更改,我都无法成功加载图像。

'holder.image'(如下面的代码 fragment 所示)直接将图像插入到 RecyclerView ViewHolder 中,如果我包含它们,它会成功显示占位符图像。此外,日志 fragment 显示我传入的 URL 链接,单击后图像会成功显示。

我尝试过多个不同版本的 Glide:4.9、4.4 和 3.7(最新的版本是我正在关注的教程中的版本,也是之前堆栈交换答案中推荐的版本)。

我已在 list 中包含以下权限:以及只包含一个而不包含任何一个。

我尝试过 HTTPS 和 HTTP 链接以及来自不同站点的链接。 (包括直接从我遵循的教程中复制链接)。

下面是我的 RecyclerViewAdapter 类,删除了所有非图像变量。据我所知,唯一的关键部分是 onBindViewHolder 函数,因为占位符可以正常工作,但为了以防万一,我已经包含了完整的(简化的)类。

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
private ArrayList<String> mImageAddresses = new ArrayList<>();

public RecyclerViewAdapter(Context mContext, ArrayList<String> mImageAddresses) {
this.mImageAddresses = mImageAddresses;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_entry, parent, false);
ViewHolder holder = new ViewHolder(view);
return holder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
Log.d(TAG, "onBindViewHolder: called. Address name: " + mImageAddresses.get(position));
Glide.with(mContext)
.load(mImageAddresses.get(position))
.placeholder(R.drawable.ic_launcher_foreground)
.into(holder.image);

holder.parentLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "onClick: clicked on: " + mTitles.get(position));
Toast.makeText(mContext, "PLACEHOLDER", Toast.LENGTH_SHORT).show();
}
}
}


@Override
public int getItemCount() {
return mTitles.size(); //I have removed mTitles elsewhere for a more concise code snippet but it is successfully implemented
}

public class ViewHolder extends RecyclerView.ViewHolder {
ImageView image;
public ViewHolder(@NonNull View itemView) {
super(itemView);
image = itemView.findViewById(R.id.Icon);
}
}
}
2019-08-16 20:18:46.515 19359-19359/com.example.myapplication D/RecyclerViewAdapter: onBindViewHolder: called. Address name: http://c1.staticflickr.com/5/4636/25316407448_de5fbf183d_o.jpg

2019-08-16 20:18:46.745 19359-19359/com.example.myapplication D/RecyclerViewAdapter: onBindViewHolder: called. Address name: https://i.redd.it/obx4zydshg601.jpg

2019-08-16 20:18:46.764 19359-19359/com.example.myapplication D/RecyclerViewAdapter: onBindViewHolder: called. Address name: https://i.imgur.com/ZcLLrkY.jpg

上面是一些示例日志输出,使用了我遵循的教程中的图像。所有链接均可点击。日志中似乎没有出现错误。

最佳答案

一个常见的问题是位置是最终的

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Glide.with(mContext)
.load(mImageAddresses.get(holder.getAdapterPosition()))
.placeholder(R.drawable.ic_launcher_foreground)
.into(holder.image);
}

关于java - 尽管日志中的占位符图像和 URL 都正常工作,但 Glide 不会从 URL 加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57530319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com