我有一个对象,它包含一个字符串列表。这些是图片的urls,我使用毕加索库在ImageView中设置。我想把这些图片设置在一个ImageSwitcher中,我不知道该如何做(我以前做过一些研究,但没有结果)。谢谢你帮我!
编辑:我最终选择了一个水平的RecyclerView来拥有一个类似的图库,所以在我的布局中,一行只有一个ImageView。我现在也有一个回收适配器,但我不知道我是否需要在适配器中包含我的字符串列表,还是只需要处理imageView并动态创建一个ImageView并将其添加到我的java类中的回收器列表中……谢谢你的帮助!
发布于 2016-04-12 11:48:33
您的Adapter应该有一个构造函数,其中您将把urls作为参数传递给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);https://stackoverflow.com/questions/36309353
复制相似问题