Pouvez-vous charger un retraitable à partir d'un sous-répertoire dans le dossier assets
(pas le dossier pouvant être tracé)?Est-il possible de charger un drawable à partir du dossier assets?
Répondre
Hope this aide:
Drawable d = Drawable.createFromStream(getAssets().open("Cloths/btn_no.png"), null);
Dans cette version, vous ne pouvez pas, si vous créez un sous-dossier dans votre dossier drawable, vous ne pouvez pas l'utiliser dans votre fichier xml, il ne sera pas reconnu lorsque vous utilisez android: src.
Jetez un oeil à ce fil: Can the Android drawable directory contain subdirectories?
Dans ce cas, quel est le moyen le plus simple de charger quelques centaines de tuiles de carte personnalisées à afficher à l'écran? – Jamie
Ah ma question concerne le dossier des assets, pas le drawable. Question éditée. – Jamie
Cette réponse est dépassée maintenant que la question a été mise à jour. – styler1972
Oui, vous pouvez créer un objet à partir d'un Drawable
InputStream
en utilisant la méthode createFromStream().
est-il possible pour drawables dans le dossier drawable aussi? Si oui que comment? –
@chiragshah Je ne comprends pas. Les images du répertoire drawable sont converties par le système pour vous. –
J'ai besoin d'un moyen rapide de charger des images à partir du dossier des biens car j'ai beaucoup de tuiles de carte avec les mêmes noms mais des répertoires différents. – Jamie
Je recommande d'utiliser cette
Drawable.createFromResourceStream(resources,new TypedValue(), resources.getAssets().open(filename), null)
qui retourne correctement mis à l'échelle étirables grâce aux ressources ...
warrning: cette méthode cause une exception sur HTC Desire HD, ne me demandez pas pourquoi ... – David
Cela a permis d'obtenir la bonne densité
private Drawable drawableFromAssetFilename(String filename) {
AssetManager assetManager = mApplicationContext.getAssets();
InputStream inputStream = null;
try {
inputStream = assetManager.open(filename);
} catch (IOException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
BitmapDrawable drawable = new BitmapDrawable(mApplicationContext.getResources(), bitmap);
return drawable;
}
Voici la fonction qui fait cela pour vous.
Vérifiez que la variable Drawable renvoyée pour la valeur null peut être renvoyée si le chemin n'est pas valide ou s'il existe une exception IOException.
public static Drawable getDrawableFromAssetFolder(String fullPath, Activity ctx) {
Drawable d =null;
try {
d = Drawable.createFromStream(ctx.getAssets().open(fullPath), null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return d;
}
Voici une classe avec une méthode statique pour obtenir l'extractible des actifs. Il ferme également l'inputtream.
import android.content.Context;
import android.graphics.drawable.Drawable;
import java.io.IOException;
import java.io.InputStream;
/**
* Created by bartburg on 4-11-2015.
*/
public class AssetsReader {
public static Drawable getDrawableFromAssets(Context context, String url){
Drawable drawable = null;
InputStream inputStream = null;
try {
inputStream = context.getAssets().open(url);
drawable = Drawable.createFromStream(inputStream, null);
} catch (IOException e) {
e.printStackTrace();
} finally {
if(inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return drawable;
}
}
- 1. base de données android à partir du dossier assets
- 2. Android: pour visualiser une image à partir du dossier drawable
- 3. Charger l'image du dossier res/drawable correspondant Android
- 4. Android: mise à jour du dossier drawable
- 5. chemin du dossier drawable en studio Android
- 6. Rails 3.2.3 charger javascript à partir du dossier public avant
- 7. Impossible de récupérer Png du dossier drawable
- 8. errorCopyingDatabase du dossier Assets to memory
- 9. Comment copier les exemples d'images à partir du dossier drawable vers le dossier sdcard, programmaticaly?
- 10. Comment ouvrir un fichier PDF sous Android à partir du dossier assets?
- 11. importer le fichier .java à partir du dossier/assets du projet android?
- 12. Android Charger l'image à partir du dessin
- 13. Impossible de charger une classe à partir du dossier lib
- 14. Ressources $ NotFoundException drawable-xhdpi à partir de la ressource drawable
- 15. Rails 3.1.3 - Chargement des assets du sous-dossier dans vendor/assets/stylesheets
- 16. Android dossier drawable
- 17. Problème dans le dossier Assets
- 18. Est-il possible d'ajouter un dossier personnalisé dans le dossier 'drawable' d'une application Android?
- 19. Charger l'image dans l'application à partir du dossier local
- 20. IIS 7 comment charger l'assemblage à partir du dossier Bin
- 21. Android accédant au dossier drawable
- 22. Comment obtenir un identifiant drawable à partir du code
- 23. Charger le fichier XML à partir du répertoire de projet
- 24. Comment puis-je analyser le fichier kml à partir du dossier assets?
- 25. Il est possible de rechercher un fichier avec l'extension désirée dans le dossier assets?
- 26. Copier la base de données du dossier Assets dans l'application
- 27. charger des images du dossier drawable pour chaque enregistrement de Sqlite
- 28. charger des images à partir d'un dossier
- 29. Charger le fichier vidéo à partir du dossier actif à VideoView
- 30. java.lang.NullPointerException lors du chargement du drawable qui existe dans chaque dossier res/drawable- "density"
Je me demande simplement si le fichier est automatiquement fermé pour vous? Par sécurité, je donne actuellement une variable au retour de open(), puis je le ferme manuellement. –
@DatVM non il ne ferme pas automatiquement le flux d'entrée. J'ai créé une classe avec une méthode statique pour obtenir le drawable des actifs et l'ai ajouté comme réponse séparée ci-dessous. –