是否可以通过编程方式添加图像?

时间:2011-03-23 02:59:01

标签: android imageview

我有一个网络服务,我从中读取各种信息。这些信息之一是图像的名称。我将所有图像存储在drawables文件夹中。我现在所做的是我从Web服务中读取了我需要的图像字符串。我想使用此字符串名称并从我的drawable文件夹中插入具有相同字符串名称的图像。这可能吗?

是否有可能以某种方式执行以下操作?

//Setup the image
        ImageView spotIvIcon = (ImageView)findViewById(R.id.spot_selected_image);
        String temp = "R.drawable."+spotImage;
        spotIvIcon.setImageResource(R.drawable.beer);

我对临时字符串做了什么。是否可以将此字符串转换为我需要的int?我在那里喝啤酒只是为了测试一些东西。 感谢

2 个答案:

答案 0 :(得分:6)

所以我发现了如何做到这一点。如果有人想知道它是如何完成的,请使用以下代码:

int path = getResources().getIdentifier(spotImage, "drawable", "com.androidpeople.tab");
        spotIvIcon.setImageResource(path);

其中:

  • spotImage是字符串的名称
  • drawable是您想要的类型
  • com.androidpeople.tab是您的包名称

现在就像魅力一样。

答案 1 :(得分:2)

您可以使用assets目录存储这些图像,然后使用BitmapFactory.decodeStream(assetManager.open(imAnAssetName))等加载它们;

资源目录,它用于资源管理器不希望管理(或无法管理)的事物。

http://developer.android.com/reference/android/content/res/AssetManager.html