java - 如何在 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);
}
}
解决方案
只需使用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)
有关更多信息,请查看文档
推荐阅读
- javascript - 对象具有不同长度和动态的对象数组的自定义排序顺序
- html - 如何为 html select 中的箭头添加填充?
- jquery - 在使用 id 的特定项目上使用 toggleclass
- c# - 为什么 "DateTime.Now.ToString("hh tt", new CultureInfo("de"))" 在不同版本的 .Net 中返回不同的结果?
- angularjs - AngularJS 光滑的轮播按属性过滤
- reporting-services - D365中如何使用SSRS查询sharepointdocument实体
- appium - 如何在 webdriverIO 和 mocha 中处理 iOS 弹出窗口?
- python - 从键盘读取输入而不等待“输入”
- javascript - 我试图改变页面的链接改变它的window.location,但它只是不起作用
- azure - Azure 存储帐户网络选项卡未显示/无法访问