Cargar una imagen de la carpeta de activos

Estoy intentando cargar una imagen de la carpeta de asset y luego configurarla en un ImageView . Sé que es mucho mejor si uso el R.id.* para esto, pero la premisa es que no conozco la identificación de la imagen. Básicamente, estoy tratando de cargar dinámicamente la imagen a través de su nombre de archivo.

Por ejemplo, recupero aleatoriamente un elemento en la database representa, digamos, una ‘vaca’ , ahora lo que mi aplicación haría es mostrar una imagen de ‘vaca’ a través de ImageView . Esto también es cierto para todos los elementos en la database . (La suposición es que para cada elemento hay una imagen equivalente)

gracias por adelantado.

EDITAR

olvidé la pregunta, ¿cómo cargo la imagen desde la carpeta de asset ?

Si conoce el nombre del archivo en el código, llamar a esto no será un problema:

 ImageView iw= (ImageView)findViewById(R.id.imageView1); int resID = getResources().getIdentifier(drawableName, "drawable", getPackageName()); iw.setImageResource(resID); 

Su nombre de archivo tendrá el mismo nombre que drawableName, por lo que no tendrá que lidiar con activos.

Verifica este código En este tutorial puede encontrar cómo cargar imágenes desde la carpeta de activos.

// cargar imagen

 try { // get input stream InputStream ims = getAssets().open("avatar.jpg"); // load image as Drawable Drawable d = Drawable.createFromStream(ims, null); // set image to ImageView mImage.setImageDrawable(d); ims .close(); } catch(IOException ex) { return; } 

Aquí estás,

  public Bitmap getBitmapFromAssets(String fileName) { AssetManager assetManager = getAssets(); InputStream istr = assetManager.open(fileName); Bitmap bitmap = BitmapFactory.decodeStream(istr); return bitmap; } 

Algunas de estas respuestas pueden responder a la pregunta, pero nunca me gustó ninguna de ellas, así que terminé escribiendo esto, es mi ayuda a la comunidad.

Obtener Bitmap de Bitmap de los activos:

 public Bitmap loadBitmapFromAssets(Context context, String path) { InputStream stream = null; try { stream = context.getAssets().open(path); return BitmapFactory.decodeStream(stream); } catch (Exception ignored) {} finally { try { if(stream != null) { stream.close(); } } catch (Exception ignored) {} } return null; } 

Obtener Drawable de los activos:

 public Drawable loadDrawableFromAssets(Context context, String path) { InputStream stream = null; try { stream = context.getAssets().open(path); return Drawable.createFromStream(stream, null); } catch (Exception ignored) {} finally { try { if(stream != null) { stream.close(); } } catch (Exception ignored) {} } return null; } 
 WebView web = (WebView) findViewById(R.id.webView); web.loadUrl("file:///android_asset/pract_recommend_section1_pic2.png"); web.getSettings().setBuiltInZoomControls(true); 
 public static Bitmap getImageFromAssetsFile(Context mContext, String fileName) { Bitmap image = null; AssetManager am = mContext.getResources().getAssets(); try { InputStream is = am.open(fileName); image = BitmapFactory.decodeStream(is); is.close(); } catch (IOException e) { e.printStackTrace(); } return image; } 
    Intereting Posts