使用数据库中的地址进行imageview
Use the address in the database for imageview
对不起我的英语。
我在可绘制文件夹中有一个存储图像名称的 SQLite 数据库。
示例:R.drawable.image1,R.drawable.image2,...
有没有一种方法可以将存储在数据库中的地址归因于 ImageViews?
是的,您可以通过名称获取 Drawable,但它需要是资源的全名,包括扩展名。因此,例如,如果 "R.drawable.image1" 引用名为 "image1.png" 的图像,您将需要通过字符串 "image1.png".
来查找它
给定图片名称(例如"image1"),您可以使用以下方法获取图片的资源ID(假设您所有的图片都具有“.png”扩展名):
private final Map<String, Integer> iconMap = new HashMap<>();
public int getIconResourceId(final String imageName) {
String name = imageName.replace(".png", "");
Integer resourceId = iconMap.get(name);
if(resourceId == null) {
Resources resources = getResources();
resourceId = resources.getIdentifier(name, "drawable", getPackageName());
iconMap.put(name, resourceId); // cache the entry
}
return resourceId.intValue();
}
请注意,上面的代码缓存了资源 ID - 我在 RecyclerView 的代码中使用了它,其中可能需要在滚动 RecyclerView 时经常检索相同的图像。如果不需要,您可能需要删除 HashMap。
对不起我的英语。
我在可绘制文件夹中有一个存储图像名称的 SQLite 数据库。
示例:R.drawable.image1,R.drawable.image2,...
有没有一种方法可以将存储在数据库中的地址归因于 ImageViews?
是的,您可以通过名称获取 Drawable,但它需要是资源的全名,包括扩展名。因此,例如,如果 "R.drawable.image1" 引用名为 "image1.png" 的图像,您将需要通过字符串 "image1.png".
来查找它给定图片名称(例如"image1"),您可以使用以下方法获取图片的资源ID(假设您所有的图片都具有“.png”扩展名):
private final Map<String, Integer> iconMap = new HashMap<>();
public int getIconResourceId(final String imageName) {
String name = imageName.replace(".png", "");
Integer resourceId = iconMap.get(name);
if(resourceId == null) {
Resources resources = getResources();
resourceId = resources.getIdentifier(name, "drawable", getPackageName());
iconMap.put(name, resourceId); // cache the entry
}
return resourceId.intValue();
}
请注意,上面的代码缓存了资源 ID - 我在 RecyclerView 的代码中使用了它,其中可能需要在滚动 RecyclerView 时经常检索相同的图像。如果不需要,您可能需要删除 HashMap。