我有很多图像(数百个),我需要将其中一些图像作为ImageView
的资源,但是如果我将If If设置为Image name的话,我会从大量的代码中死亡。我想设置名称在变量内的图像资源,但是我不知道怎么做。如果我有
img.setImageResource(R.drawable.my_image);
如何在my_image
处分配变量名称,而不是真实的图像名称?
请帮忙。
谢谢。
答案 0 :(得分:0)
尝试一下:
String resourceName = "clouds";
int resourceIdentifier = getResources().getIdentifier(resourceName, "drawable", Constants.CURRENT_CONTEXT.getPackageName());
然后
imgView.setImageResource(resourceIdentifier);
答案 1 :(得分:0)
我不知道我是否清楚地理解了您的请求,但是为什么您不尝试这样做:
int my_image = R.id.my_image;
img.setImageResource(ContextCompat.getDrawable(this, my_image));
https://stackoverflow.com/a/29146895/8526518了解有关ContextCompat的更多信息
答案 2 :(得分:0)
如果您更喜欢资产文件夹而不是资源, 然后您可以尝试使用此代码
在资产目录中创建子文件夹。使用getAssets()。list()从资产中获取所有文件名:
String[] images =getAssets().list("images");
ArrayList<String> listImages = new ArrayList<String>(Arrays.asList(images));
现在要在imageview中设置图像,您首先需要使用资产中的图像名称获取位图:
InputStream inputstream=mContext.getAssets().open("images/"
+listImages.get(position));
Drawable drawable = Drawable.createFromStream(inputstream, null);
imageView.setImageDrawable(drawable);