0

只是在寻找对解决我的问题的最佳方法的意见。我有一个针对儿童的益智游戏应用程序的想法,其中一部分要求用户从 3 个不同的选项中选择正确的图像。给出一条线索,例如“D 代表...”,然后将显示 3 张图像。例如苹果、狗和山羊。如果用户在这种情况下选择 Dog,则选择下一个字母。如果用户选择错误,他们将有另一个机会选择。

我不是在寻找解决方案,我只是想知道存储带有正确问题的图像的最佳方法是什么。SQLite DB 会是最佳选择吗?最初它只会为每个字母存储 1 个图像,但最终会扩展为每个字母存储多个图像,所以我在这里考虑长期。

提前谢谢各位

4

1 回答 1

1

我会将它全部存储在一个 json 文件中。我认为 SQLite 将为此矫枉过正。

[
  {
    "letter":"c",
    "images":[
    "image_cat",
    "image_car"
    ]
  },
  {
    "letter":"d",
    "images":[
    "image_dog",
    "image_duck",
    "image_desk"
    ]
  }
]

然后你可以很容易地将 json 解析成一个对象数组。

然后在 res/drawable/hdpi/ 你可以有 image_cat.png image_car.png image_dog.png image_duck.png image_desk.png

然后从资源加载这些图像,使用类似:

int resourceId=Resources.getSystem().getIdentifier(imageName, "drawable", getContext().getPackageName());
if(resourceId != 0){
 Drawable d = getResources().getDrawable(resourceId);
}

如果您希望将图像存储在资产中,您可以这样做:

InputStream ims = getAssets().open(imageName);
Drawable d = Drawable.createFromStream(ims, null);
于 2013-02-07T17:46:07.660 回答