首页 > 解决方案 > 如何在 Recyclerview 中将 Picasso 更改为 Glide

问题描述

我有一个 Textview 和 Imageview 的活动。我曾经用毕加索从 Firebase 数据库中检索图像。我正在使用 Recyclerview 和 Firebase 和后端。我想将图像视图更改为 Gifimage 视图。Picasso 不支持 Gifimageview,所以我想将 Picasso 更改为 Glide。如何在此活动中应用 Glide。请帮我。对不起,我的英语不好。
这是我的代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_language_sub);

    

    Toolbar toolbar = findViewById(R.id.LanguageSubToolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle("Chapters");


    if (getSupportActionBar()!=null){

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }




    database = FirebaseDatabase.getInstance();
    MCC = database.getReference("LanguageJavaSub");


    recyclerView = (RecyclerView) findViewById(R.id.recycler_LanguageSub);
    recyclerView.setHasFixedSize(true);
    layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(new GridLayoutManager(this, 1));


    if (getIntent() != null)
        categoryId = getIntent().getStringExtra("CategoryId");
    if (!categoryId.isEmpty() && categoryId != null) {
        loadListThrillerSubModel(categoryId);
    }
}

private void loadListThrillerSubModel(String categoryId) {

    adapter = new FirebaseRecyclerAdapter<computerSubModel, computerViewHolder>(computerSubModel.class,

            R.layout.language_items,
            computerViewHolder.class,
            MCC.orderByChild("menuid").equalTo(categoryId)) {



        @Override
        protected void populateViewHolder(computerViewHolder viewHolder, final computerSubModel model, int position) {
            viewHolder.thrillername.setText(model.getTitle());

            Picasso.get().load(model.getImage())
                    .into(viewHolder.image1);


            final computerSubModel local = model;
            viewHolder.setItemClickListner(new ItemClickListner() {
                @Override
                public void onClick(View view, int position, boolean isLongClick) {


                    Intent detailsIntent = new Intent(LanguageSubActivity.this, LanguageVideoActivity.class);
                    detailsIntent.putExtra("CategoryId", adapter.getRef(position).getKey());
                    startActivity(detailsIntent);
                }
            });


        }
    };

    recyclerView.setAdapter(adapter);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home)
        finish();
    return super.onOptionsItemSelected(item);
}

}

标签: javaandroidfirebasefirebase-realtime-database

解决方案


只需使用Glide而不是Picasso如下:

Glide.with(context)
                .load(imageUrl)
                .into(imageView)

Gradle 依赖项如下:-

dependencies {
  implementation "com.github.bumptech.glide:glide:4.9.0"
  annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
}

在您的代码中,您可以用 Glide 替换您的 Picasso 代码,如下所示:

您的毕加索代码:

Picasso.get().load(model.getImage())
                    .into(viewHolder.image1);

使用 Glide 代码:

 Glide.with(viewHolder.getContext())
                    .load(model.getImage())
                    .into(viewHolder.image1)

有关更多信息,请查看文档


推荐阅读