J'ai un fichier .gif dans le dossier des ressources, comme ceci: assets/Files/Android.gif. quand j'essaie d'ouvrir le fichier, il lève une exception à la deuxième ligne
AssetManager mngr=getAssets();
InputStream is2=mngr.open("Files/Android.gif");
alors Est-ce que j'essaie d'ouvrir un fichier image malgré le fait que le même code fonctionne si j'essaie d'ouvrir un fichier texte? quel peut être le problème ici.
Ces lignes fonctionnent parfaitement--
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 votre image est très grande, vous devez redimensionner votre image avant de la décoder en Bitmap. Voir Comment afficher efficacement une grande image
Je soupçonne que vous recevez des plaintes à propos du type d’exception IOException non gérée. Si tel est le cas, vous devez placer l'appel à mgr.open dans un bloc try-catch pour gérer l'exception susceptible de se produire lors de la récupération de l'objet InputStream.
AssetManager mngr = getAssets();
try {
InputStream is2 = mngr.open("Files/Android.gif");
} catch (final IOException e) {
e.printStackTrace();
}
Je pense que la meilleure façon de faire est de mettre votre image dans le répertoire res/drawable. Ensuite, vous pouvez obtenir un Drawable comme ceci:
Drawable d = Resources.getSystem().getDrawable(R.drawable.Android);
Je ne sais pas si les choses ont changé ou non, mais j'avais une application dans Android 1.1 qui ouvrait des icônes pour ensuite les afficher dans une vue et je l'avais fait comme ça:
BufferedInputStream buf = new BufferedInputStream(mContext.openFileInput(value));
Bitmap bitmap = BitmapFactory.decodeStream(buf);
Je ne crois pas que gif soit supporté automatiquement sur Android. Essayez un png ou jpg avec le même code.
Mina, j'avais le même problème ... J'avais des images et un fichier XML dans "assets" et je pouvais lire le fichier XML mais pas les images. Après quelques heures de frustration, j'ai finalement trouvé la solution!
J'ai posté la solution ici: Null-pointeur problème affichant une image du dossier des actifs Android 2.2 SDK