Comment charger une image à partir d'actifs?
j'ai besoin de charger une image à partir d'actifs pour éviter un froyo 2.2.2 bug redimensionnement POT d'images dans certains cas particuliers. La façon de l'éviter est le chargement de l'image des fichiers à partir d'actifs dir.
Je suis en train de faire avec ce:
String imagePath = "radiocd5.png";
AssetManager mngr = context.getAssets();
//Create an input stream to read from the asset folder
InputStream is=null;
try {
is = mngr.open(imagePath);
} catch (IOException e1) { e1.printStackTrace();}
//Get the texture from the Android resource directory
//InputStream is = context.getResources().openRawResource(R.drawable.radiocd5);
Bitmap bitmap = null;
try {
//BitmapFactory is an Android graphics utility for images
bitmap = BitmapFactory.decodeStream(is);
} finally {
//Always clear and close
try {
is.close();
is = null;
} catch (IOException e) {
}
}
Mais je suis NullPointerException sur la ligne is.close();
je capture une FileNotFoundException: radiocd5.png, mais que le fichier est sur mon répertoire actif :S
Ce que je fais mal? Le fichier est appelé radiocd5.png
et il est sur le assets
répertoire
Vous devez vous connecter pour publier un commentaire.
Vous pouvez suivre mes tutoriels sur l'affichage de données à partir d'Actifs: https://xjaphx.wordpress.com/2011/10/02/store-and-use-files-in-assets/
L'échantillon avec le chargement de l'image et le texte à afficher.
J'ai maintenant ajouté à la partie pertinente du lien fourni
(en cas de tremblement de terre ou quelque chose) 😉 Taifun
Au lieu d'utiliser les actifs dir, placer le fichier dans /res/raw, et vous pouvez ensuite y accéder en utilisant l'URI suivante:
android.resource://com.your.packagename/" + R.raw.radiocd5