在 ImageView 上设置后获取可绘制对象的名称

Get the drawable's name after setting it on ImageView

我实际上是从 Drawable 文件夹中动态地将图像设置到 ImageView。我得到了动态设置图像的工作代码,但我无法获得目前在图像视图上设置的 image/drawable 的名称。 我应该获取 drawable 名称或任何代码以获取每个 drawable 的实例,并使用我可以在 ImageView 上设置的名称。 非常感谢任何帮助!!

我在 Whosebug 上搜索并尝试了所有答案。

将图像动态设置到 imageview 并获取该图像的名称。

作为一种好的做法,您可以将可绘制对象存储在变量中并更新图像视图。

@DrawableRes int myDrawable;
iv.setImageDrawable(getResources().getDrawable(myDrawable));

设置标签并从标签中获取不是理想的恕我直言,因为它更易于维护和调试。

好的。经过2天的研究和试验,我终于做到了我计划做的事情。这是我的代码,如果有人从中得到帮助的话。

ArrayList<Integer> array_fruits = new ArrayList<Integer>();
    int fruit_apricot = R.drawable.fruits_apricot;
    int fruit_apple = R.drawable.fruits_apple;
    int fruit_banana = R.drawable.fruits_banana;

...还有更多

array_fruits.add(fruit_apple);
        array_fruits.add(fruit_apricot);
        array_fruits.add(fruit_banana);

...以及更多

//用于生成 30 和 1 之间的数字的工作代码(arraylist 中的 0 到 29)

Random rand = new Random();
                    int num = rand.nextInt(30) + 1;
                    array_fruits.add(num);
                    itemImg.setImageDrawable(getResources().getDrawable(array_fruits.get(num)));
                    Log.e("num: ", num+"");
                    Toast.makeText(getApplicationContext(), num+"", Toast.LENGTH_LONG).show();

我已经尝试了几乎所有在 Whosebug 和其他网站上给出的解决方案。