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

时间:2013-12-11 09:17:01

标签: android imageview filenames shuffle

我想获取改组的ImageViews的文件名

    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 个答案:

答案 0 :(得分: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());

答案 1 :(得分:0)

根据Android开发者网站的说法,ImageView继承自android.view.View。因此,您可以使用getResources()来获取Resources对象,然后使用getAssets()来获取AssetManager。

我在工作,所以我现在无法提供示例。抱歉。我希望这会有所帮助。

快乐的编码! :)

答案 2 :(得分:-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();