如何将Picasso与用于RecyclerView的自定义适配器一起使用

OBX

RecyclerView正在填充从网络加载的图像。我可以使用AsyncTask适配器内部的图像加载图像但是,由于我需要用毕加索实现它,因此需要帮助。这是到目前为止的代码:

    public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MovieViewHolder>
{
    Bitmap mBitmap;
    int pos;
    public static class MovieViewHolder extends RecyclerView.ViewHolder
    {
         CardView cv;
        TextView MovieName;
         ImageView MoviePhoto;

        MovieViewHolder(View itemView) {
            super(itemView);
            cv = (CardView)itemView.findViewById(R.id.cv);
            MovieName = (TextView)itemView.findViewById(R.id.movie_name);
            MoviePhoto = (ImageView)itemView.findViewById(R.id.movie_photo);
        }
    }

    List<Post> mpost;

    CustomAdapter(List<Post> mpost){
        this.mpost = mpost;
    }

    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }

    @Override
    public MovieViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item, viewGroup, false);
        MovieViewHolder pvh = new MovieViewHolder(v);
        return pvh;
    }

    @Override
    public void onBindViewHolder(MovieViewHolder movieViewHolder, int i)
    {
        pos=i;
        movieViewHolder.MovieName.setText(mpost.get(i).getTitle());

        if(mpost.get(pos).getPoster_path()!=null)
        {
            new AsyncTask<Void, Void, Void>() {
                @Override
                protected Void doInBackground(Void... params) {
                    try {
                        URL url = new URL("http://image.tmdb.org/t/p/w154"+mpost.get(pos).getPoster_path());
                        mBitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream());

                    } catch (MalformedURLException e) {

                    } catch (IOException e) {

                    }
                    return null;
                }
            }.execute();




            movieViewHolder.MoviePhoto.setImageBitmap(mBitmap);

        }




    }

    @Override
    public int getItemCount()
    {
        if(mpost!=null)
        {
            return mpost.size();
        }
        else
        {
            return 0;
        }
    }

}

我需要替换为:

 new AsyncTask<Void, Void, Void>() {
            @Override
            protected Void doInBackground(Void... params) {
                try {
                    URL url = new URL("http://image.tmdb.org/t/p/w154"+mpost.get(pos).getPoster_path());
                    mBitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream());

                } catch (MalformedURLException e) {

                } catch (IOException e) {

                }
                return null;
            }
        }.execute();




        movieViewHolder.MoviePhoto.setImageBitmap(mBitmap);

与毕加索:

Picasso.with(this)
                .load("http://image.tmdb.org/t/p/w154" + mpost.get(pos).getPoster_path())
                .into(MoviePhoto);

但是,这样做似乎有错误,最好的解决方法是什么?

拉文德拉·库什瓦哈(Ravindra Kushwaha)

您可以在onBindViewHolder方法中使用毕加索作为以下代码RecyclerView.Adapter

@Override
public void onBindViewHolder(MovieViewHolder movieViewHolder, int position){


    Post model = mpost.get(position);    

    movieViewHolder.MovieName.setText(model.getTitle());
    Picasso.with(getContext()).load("http://image.tmdb.org/t/p/w154" + model.getPoster_path()).into(movieViewHolder.MoviePhoto)

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将AsyncTask与ListView适配器一起使用

无法在滑动视图中将自定义listView和适配器与listFragment一起使用

将自定义列表适配器与AutoCompleteTextView一起使用,并仍然保持自动功能完全相同

如何创建自定义适配器以将 cardview 用于片段内的列表视图

将Volley与同步适配器一起使用

如何将项目动态添加到ListView的自定义适配器

如何将两个textViews添加到自定义适配器?

如何将小型90W电源适配器与ThinkPad W530一起使用?

如何使用自定义回收器适配器创建封闭的圆形Recyclerview?

使用bitronox管理器,XA无法与我的自定义dev-kit适配器一起使用

如何使用自定义适配器将项目自动加载到ListView中

如何从Cordova应用程序将POST与JavaScript适配器一起使用?

如何将Alamofire与自定义标头一起用于POST请求

自定义适配器不适用于片段中的RecyclerView

notifyDataSetChanged() 不适用于自定义 RecyclerView 适配器

在RecyclerView适配器中设置自定义字体

如何使用Hashmap为自定义列表视图创建自定义适配器

自定义 RecyclerView 适配器不允许 onBindViewHolder 使用预定义的 ViewHolder

使用适用于Android应用的自定义适配器将项目动态添加到列表视图

将onClickListener设置为自定义适配器

如何将Spring REST Projections与自定义控制器一起使用

如何将 ConcurrentWebSocketSessionDecorator 与自定义 WebSocketHandler 一起使用

如何将 Firebase 存储与自定义服务器一起使用?

如何将boost :: assign与扩展STL容器的自定义容器一起使用?

如何将sklearn Pipeline与自定义功能一起使用?

如何将AWS Cognito与自定义NodeJS服务器一起使用?

如何将dask.dataframe与自定义dsk图一起使用

如何将 lodash sortBy 与自定义订单比较器一起使用

PS7.1-如何将管道链接与自定义功能一起使用?