我已经知道如何处理这样的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
答案 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是字符串名称数组中项目的位置。