如何从ImageView获取文件名(ANDROID)

3
我想获取乱序ImageView的文件名。
    private List<Drawable> images_;
    images_ = new ArrayList<Drawable>();
    images_.clear();

    images_.add(getResources().getDrawable(R.drawable.img1));
    images_.add(getResources().getDrawable(R.drawable.img2));
    images_.add(getResources().getDrawable(R.drawable.img3));
    images_.add(getResources().getDrawable(R.drawable.img4));

    Collections.shuffle(images_); 

    ImageView img_1 = (ImageView)findViewById(R.id.img_1);   
    img_1.setBackgroundDrawable(images_.get(0));

如何知道在这个ImageView(img_1)中设置的图片名称?
3个回答

3

使用setImageResource(resID)代替setBackgroundDrawable。现在,您可以使用setId(resID)方法将图像的id设置为相同的resID。要获取图像名称,请使用以下方法。

getResources().getResourceName(urImage.getId());


ArrayList<Integer> list = new ArrayList<Integer>() {{
    add(R.drawable.img1);
    add(R.drawable.img2);
    add(R.drawable.img3);
}}
Collections.shuffle(list);
ImageView img_1 = (ImageView)findViewById(R.id.urimageId);   
img_1.setImageResource(list.get(0));
img_1.setTag(list.get(0));

现在要获取图像名称,请按照以下步骤操作。
getResources().getResourceName((Integer)img_1.getTag());

你能给我一个例子吗?因为我需要使用images_作为参考,如何从images_.get(0)中获取ID? - Gorio
为了解释我的想法,可以将图像视为香蕉、菠萝、草莓、苹果等水果。我知道这些名称,但当它们被打乱时,我就失去了对图像的参考,我需要知道在images_.get(0)或images_.get(1)位置上是什么水果。 - Gorio
工作了!谢谢!! - Gorio

0
根据Android开发者网站,ImageView是从android.view.View继承而来的。因此,您可以使用getResources()获取一个资源对象,然后使用getAssets()获取AssetManager。
我现在正在工作,无法提供示例。抱歉。但我希望这能有所帮助。
祝编码愉快! :)

-1
尝试使用以下代码从ImageView中获取文件名:
ImageView iv = new ImageView(MainActivity.this);
String path = f.getAbsolutePath();                 
iv.setImageBitmap(BitmapFactory.decodeFile(path));
iv.setTag(path);

获取路径:

String path = (String) iv.getTag();

那是你的文件路径。 - Shailendra Madda
1
当然可以,但是它被洗牌了..如何知道正确的文件路径名称,因为我不知道哪个图像是哪个,因为我有12个ImageView和20个图像。这些图像被打乱了,我只得到了12个位置(图像)。 - Gorio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接