从Sqlite为每条记录从drawable文件夹加载图片

时间:2014-09-07 05:31:42

标签: android eclipse sqlite drawable

我想在我的Android应用中显示每个国家/地区的名称和相应的标志。 国家/地区名称存储在Sqlite数据库中,国家/地区标志位于可绘制文件夹中。 如何加载具有相应国家/地区名称的国家/地区标志?

3 个答案:

答案 0 :(得分:0)

根据drawablescountry name or code命名并使用资源的getIdentifier(...)方法

此处doc

例如,

int drawableId= getResources().getIdentifier("country_name", "drawable", this.getPackageName());

此处传递从database收到的国家名称 ...

然后,您可以ImageviewsetImageResource(..)

将其设置为setDrawable(..)

答案 1 :(得分:0)

使用getIdentifier注意:"不鼓励使用此功能。通过标识符检索资源比使用名称"。

更有效

我认为另一种方法是将您的资源存储为哈希映射,密钥是您的"国家/地区名称"或"国家代码"并且该值链接到您的图像ID(R.drawable.xxx)。

或者您也可以将此图片ID存储在表格中。

希望对你有所帮助!

答案 2 :(得分:0)

如何使用xml而不是sqlite?

<array name="flags">
    <item>@drawable/flag_1</item>
    <item>@drawable/flag_2</item>
    <item>@drawable/flag_3</item>
</array>

并在java文件中:

TypedArray flags = getResources().obtainTypedArray(R.array.flags);
int flag = flags.getResourceId(flag_item, 0);

你可以从你的sqlite id列中获取flag_item,或者你可以创建另一个数组(字符串数组)并在其中输入国家名称,其顺序与flags数组相同。