如何从变量设置imageview资源?

时间:2019-04-02 14:56:19

标签: java android

我有很多图像(数百个),我需要将其中一些图像作为ImageView的资源,但是如果我将If If设置为Image name的话,我会从大量的代码中死亡。我想设置名称在变量内的图像资源,但是我不知道怎么做。如果我有 img.setImageResource(R.drawable.my_image); 如何在my_image处分配变量名称,而不是真实的图像名称? 请帮忙。 谢谢。

3 个答案:

答案 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);