studio programacion móviles manejo libro galeria desarrollo curso camara aplicaciones android imageview filenames shuffle

programacion - Cómo obtener un nombre de archivo de un ImageView(ANDROID)



manual de programacion android pdf (3)

Me gustaría obtener el nombre de archivo de ImageViews mezcladas

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

¿Cómo saber qué nombre de imagen se configuró en este ImageView (img_1)?


Intente esto para obtener el nombre de archivo de un ImageView:

ImageView iv = new ImageView(MainActivity.this); String path = f.getAbsolutePath(); iv.setImageBitmap(BitmapFactory.decodeFile(path)); iv.setTag(path);

Recuperando la ruta:

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


Según el sitio web de Android Developers, ImageView se hereda de android.view.View. Entonces puede usar getResources () para obtener un objeto Resources y luego usar getAssets () para obtener AssetManager.

Estoy en el trabajo, así que no puedo dar el ejemplo en este momento. Lo siento. Espero que esto ayude sin embargo.

Feliz codificación! :)


Utilice setImageResource(resID) lugar de setBackgroundDrawable . Ahora puede obtener la identificación de la imagen como el mismo ID de residencia usando el setId(resID) . Para obtener el nombre de la imagen, use el siguiente método.

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

Ahora para obtener el nombre de la imagen haz lo siguiente.

getResources().getResourceName((Integer)img_1.getTag());