nid*_*eba 6 android android-adapter android-glide
我添加了一些手动图标drawable
,对于一些手动数据,它必须采取drawable
,如果图标不在,drawable
然后从中取出Glide
.
我尝试了类似的东西直到现在,但只是它得到了图标drawable
.
我想检查图标是否存在于drawable
那里,如果对于一个网址,图标不是可绘制的,那么请转到另一个语句并从中获取 Glide
.
以下是我的代码.
resID始终为0
String imageUrl = BASE_URL + arrayList.get(position).getSearchUrl() + "&size=32";
int resID = context.getResources().getIdentifier("icon", "drawable",context.getPackageName());
if (resID == 0) {
Log.d("TAG", "onBindViewHolder: " + resID);
viewHolder.tvIcon.setImageResource(arrayList.get(position).getIcon());
} else {
Log.d("TAG", "onBindViewHolder: Glide" + resID);
Glide.with(context)
.load(imageUrl)
.apply(requestOptions
.placeholder(R.drawable.default_favicon)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.fitCenter())
.into(viewHolder.tvIcon);
}
Run Code Online (Sandbox Code Playgroud)
你需要通过你arrayList.get(position).getIcon()
而不是"icon"
在context.getResources().getIdentifier()
另请阅读如何getIdentifier()
运作
返回给定资源名称的资源标识符。完全限定的资源名称的格式为“package:type/entry”。
Returns
:int 关联的资源标识符。如果未找到此类资源,则返回 0。(0 不是有效的资源 ID。)
试试这个方法
int resID = context.getResources().getIdentifier(String.valueOf(arrayList.get(position).getIcon()), "drawable",context.getPackageName()); "drawable",context.getPackageName());
// if resID == 0 means the icon is not available in drawable folder
// so it will load icon from url using Glide
if (resID == 0) {
Log.d("TAG", "onBindViewHolder: Glide" + resID);
Glide.with(context)
.load(imageUrl)
.apply(requestOptions
.placeholder(R.drawable.default_favicon)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.fitCenter())
.into(viewHolder.tvIcon);
}
// if resID != 0 means the icon is available in drawable folder
// so it will load icon from drawable folder
else {
Log.d("TAG", "onBindViewHolder: " + resID);
viewHolder.tvIcon.setImageResource(resID);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
218 次 |
最近记录: |