使用数据库中的地址进行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。