处理drawables - 名字

时间:2011-10-10 10:21:48

标签: android image drawable

我已经知道如何处理这样的drawable:

final int[] imgSizeIds = new int[]{
  R.drawable.zero,R.drawable.one,R.drawable.two,
  ...
};

setImageResource(imgSizeIds [ size ] );

在android中。但是如果我有一个像这样填充的字符串数组:

String[] names = new String[]{"oliver", "peter", "mike"};

当我想要处理ROW Oliver时,我想使用Image oliver.jpg。

类似的东西:

setImageResource(R.drawable. (AND HERE COMES "oliver") );

结果将是:

setImageResource(R.drawable.oliver);

两个数组不是大问题,但我也不知道如何将字符串放入整数数组的drawables中..我做不了类似的事情:

final int[10] imgSizeIds; 
String stringy = "oliver"; 
int[0] = "R.drawable." + stringy;

这样该数组中的第一项将设置为R.drawable.oliver

3 个答案:

答案 0 :(得分:2)

试试这个

int resid = getResources.getIdentifier("oliver" , "drawable", getPackageName());
setImageResource(resid);

答案 1 :(得分:0)

setImageResource(R.drawable. (AND HERE COMES "oliver") ); 

结果将是:setImageResource(R.drawable.oliver);

这可能不会发生。因为当你告诉android取一个字符串变量中指定的字符串时,它会把它当作“ - oliver”并把它放到R.drawable."oliver"或者尽管如此,如果你试试的话把它像 - setImageResource("R.drawable."+ (AND HERE COMES "oliver") )一样,它会像“R.drawable.oliver”这样的字符串,它毕竟是一个字符串变量,不适合在setImageResource()方法中传递。

确保R.drawable.imagename为您提供int,而不是字符串。

答案 2 :(得分:0)

查看以下代码是否有帮助 -

String[] imgNames = new String[]{ "oliver", "apple", "car"};

并使用它来使用名称字符串数组中的名称 -

ImageView imgvw = (ImageView) findViewById(getResources().getIdentifier(imgNames[index],"drawable",getPackageName()));

其中index是字符串名称数组中项目的位置。