我有一个包含字符串列表的对象。这些是图片的网址,我正在使用Picasso库在ImageView中设置。我想在ImageSwitcher中设置这些图像,我不知道该怎么做(我以前做过一些研究但没有结果)。谢谢你的帮助!
编辑: 我最终选择了一个Horizontal RecyclerView来拥有一个类似的Gallery,所以在我的布局中只有一个ImageView。我现在也有一个Recycler Adapter但我不知道我是否必须在适配器中包含我的字符串列表,或者只是处理imageView并动态创建一个ImageView并将其添加到我的java类中的recycleler列表中....谢谢帮助!
答案 0 :(得分:2)
您的Adapter
应该有一个构造函数,您可以在其中将url作为参数传递给Adapter
。您的Adapter
看起来像这样:
public class ImageSwitcherAdapter extends RecyclerView.Adapter<ImageSwitcherAdapter.MyViewHolder> {
private Context context;
private List<String> urls;
public ImageSwitcherAdapter(Context context, List<String> urls) {
this.context = context;
this.urls = urls;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.your_row_layout, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Uri uri = Uri.parse(urls.get(position));
Picasso.with(context).load(uri).into(holder.image);
}
@Override
public int getItemCount() {
return urls.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private ImageView image;
public MyViewHolder(View itemView) {
super(itemView);
image = itemView.findViewById(R.id.your_imageview);
}
}
}
将Adapter
设置为RecyclerView
将如下所示:
RecyclerView recyclerView = findViewById(R.id.your_recyclerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
recyclerView.setLayoutManager(layoutManager);
ImageSwitcherAdapter adapter = new ImageSwitcherAdapter(this, urls);
recyclerView.setAdapter(adapter);