txt - Abriendo un archivo de la carpeta de activos en Android
porque no puedo abrir archivos descargados en mi celular (6)
Creo que la forma preferida de hacerlo es poner su imagen en el directorio res / drawable. Entonces puedes obtener un Drawable como este:
Drawable d = Resources.getSystem().getDrawable(R.drawable.android);
Tengo un archivo .gif dentro de la carpeta de activos como este activo / Archivos / android.gif. Cuando intento abrir el archivo, se lanza una excepción en la segunda línea.
AssetManager mngr=getAssets();
InputStream is2=mngr.open("Files/android.gif");
Entonces, ¿es que estoy intentando abrir un archivo de imagen a pesar de que el mismo código funciona si intento abrir un archivo de texto? ¿Cuál puede ser el problema aquí?
Estas líneas están funcionando perfectamente--
InputStream assetInStream=null;
try {
assetInStream=getAssets().open("icon.png");
Bitmap bit=BitmapFactory.decodeStream(assetInStream);
img.setImageBitmap(bit);
} catch (IOException e) {
e.printStackTrace();
} finally {
if(assetInStream!=null)
assetInStream.close();
}
Si su imagen es muy grande, debe escalar su imagen antes de decodificarla en Bitmap. Vea cómo mostrar una imagen grande de manera eficiente
Mina, tuve el mismo problema ... tenía imágenes y un archivo XML dentro de "recursos" y podía leer el archivo XML pero no las imágenes. ¡Después de un par de horas de frustración finalmente encontré la solución!
He publicado la solución aquí: Problema de puntero nulo que muestra una imagen de la carpeta de activos Android 2.2 SDK
No creo que GIF sea compatible automáticamente con Android. Intente un png o jpg con el mismo código.
No sé si las cosas han cambiado o no, pero tenía una aplicación en Android 1.1 que abría íconos para luego mostrarlos en una vista y así lo hice:
BufferedInputStream buf = new BufferedInputStream(mContext.openFileInput(value));
Bitmap bitmap = BitmapFactory.decodeStream(buf);
Sospecho que está recibiendo quejas sobre el tipo de excepción no controlada IOException. Si ese es el caso, debe poner la llamada a mgr.open en un bloque try-catch para manejar la excepción que puede ocurrir al recuperar el objeto InputStream.
AssetManager mngr = getAssets();
try {
InputStream is2 = mngr.open("Files/android.gif");
} catch (final IOException e) {
e.printStackTrace();
}