我实际上是从Drawable文件夹动态地将图像设置为ImageView。我得到了动态设置图像的工作代码但是我无法获得此时在图像视图上设置的图像/可绘制的名称。要么我应该得到可绘制的名称或任何代码来获取每个drawable的实例与我可以在ImageView上设置的名称。任何帮助深表感谢!!
我在StackOverflow上搜索并尝试了所有答案。
将图像动态设置为imageview,并获取该图像的名称。
作为一种好的做法,您可以将drawable存储在变量中并更新imageview。
@DrawableRes int myDrawable;
iv.setImageDrawable(getResources().getDrawable(myDrawable));
设置标签和从标签获取并不是理想的imho,因为它更易于维护和调试。
好。经过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();
我曾经尝试过在stackoverflow和其他网站上提供的几乎所有解决方案。