2013-12-11 10 views
3

я хотел бы получить имя файла перемешиваются ImageViewsКак получить имя файла из ImageView (ANDROID)

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)?

ответ

2

Использовать setImageResource(resID) вместо setBackgroundDrawable. Теперь вы можете получить идентификатор изображения как тот же идентификатор с помощью метода setId(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()); 
+0

Не могли бы вы рассказать мне пример о том, как это сделать .. потому что я должен использовать images_ как ссылку и как получить идентификатор от images_.get (0)? – Gorio

+0

Чтобы объяснить мою идею, подумайте, что образы - это фрукты, такие как банан, ананас, клубника, яблоко ... Я знаю эти имена, но когда он перетасовывается, я потерял ссылку на изображения, и мне нужно знать, что frui находится на позиции 0 этого images_.get (0) или images_.get (1) .. – Gorio

+0

См. отредактированный ответ. – Triode

-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(); 
+0

Что означает f? – Gorio

+0

Это ваш путь к файлу –

+1

Конечно, но он перетасован. Как узнать, что является правильным именем пути к файлу, я не знал, что это за изображение, потому что у меня есть 12 ImageView с 20 изображениями. Изображения перетасовываются, и я просто получаю 12 позиций (изображений). – Gorio

0

Согласно вебсайту Android разработчики ImageView наследуется от android.view.View. Таким образом, вы можете использовать getResources() для получения объекта Resources, а затем использовать getAssets() для получения AssetManager.

Я работаю, поэтому я не могу представить пример прямо сейчас. Сожалею. Надеюсь, это поможет.

Счастливое кодирование! :)

Смежные вопросы