IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Tester si drawable existe


Sujet :

Android

  1. #1
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut Tester si drawable existe
    Bonjour,

    J'aimerai savoir s'il est possible de savoir si R.drawable.image existe ou non?

    Par exemple, j'aimerai faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (exist(R.drawable.image))
    {
      image = R.drawable.image
    }
    else
    {
      image = image blanche
    }
    Cependant, je ne peux pas écrire R.drawable.image si image n'existe pas!

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Et pourquoi tu veux faire ce genre de tests ?
    Car c'est toi qui fournit les ressources de ton application, donc soit tu mets la ressource, soit tu la mets pas
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    http://developer.android.com/referen...tDrawable(int)

    Tu n'as qu'a essayé de récupérer le drawable de ta ressource et si tu as un
    Resources.NotFoundException qui remonte c'est qu'elle n'existe pas.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci pour vos réponses rapides

    EN faite je veux faire ce teste car l'application (le code source) sera généré automatiquement.

    Donc si l'utilisateur aura fournis une image, j'utiliserai la sienne sinon j'utiliserai la mienne. (s'il ne la pas fournis je ne l'aurai pas)

  5. #5
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    J'ai trouvé une solution:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	boolean exist = false;
    	Class<?> c=R.drawable.class;
        Field[] fs = c.getFields();
        for(Field f: fs)
        	if (f.getName().equals("background"))
        		exist = true;
     
        if (exist)
        	getWindow().setBackgroundDrawableResource(R.drawable.background);
        else
        	getWindow().setBackgroundDrawableResource(R.drawable.defaultbackground);

    EDIT:
    A ba en faite non, je ne peux pas ecrire R.drawable.background si ca n'existe pas

    Peut on faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String draw = "background"
    getWindow().setBackgroundDrawableResource("R.drawable." + draw);

  6. #6
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    tu as regardé la solution de Feanorin plus haut :
    http://www.developpez.net/forums/d10...e/#post6059247
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  7. #7
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Oui mais comment avoir l'id?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public Drawable getDrawable (int id)

  8. #8
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Ou alors tu peux faire un truc du style :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    int idIm = getResources().getIdentifier("image", "drawable", "mon.package.application")
    if (idIm <= 0)
    {
      idIm = R.drawable.imageBlanche
    }
    ( http://developer.android.com/referen...lang.String%29 )
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  9. #9
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Donc si l'utilisateur aura fournis une image, j'utiliserai la sienne sinon j'utiliserai la mienne. (s'il ne la pas fournis je ne l'aurai pas)
    Il y a quelque chose que j'ai manqué là.

    Les ressources sont traité avant de compiler l'application , elles ne seront pas modifié par la suite .. donc l'utilisateur ne créera jamais un Id Ressource supplémentaire dans ton application.

    Tout ce que tu peux faire c'est de créer un fichier...
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  10. #10
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Merci beaucoup ca fonctionne très bien

  11. #11
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Il y a quelque chose que j'ai manqué là.

    Les ressources sont traité avant de compiler l'application , elles ne seront pas modifié par la suite .. donc l'utilisateur ne créera jamais un Id Ressource supplémentaire dans ton application.

    Tout ce que tu peux faire c'est de créer un fichier...
    A oui désolé je ne suis pas assez clair, l'utilisateur ajoute une image via un intranet. C'est par la suite que je compile l'application. Ainsi, si l'utilisateur a demandé de compiler sans avoir entré d'image, aucune image ne sera insérée dans les ressources.


    En tout cas la solution du dessus est exactement ce que je cherchais

    Solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int idIm = getResources().getIdentifier("image", "drawable", "mon.package.application");
    if (idIm <= 0)
    {
      idIm = R.drawable.imageBlanche;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tester si date existe dans un interval
    Par andreditdd dans le forum SQL
    Réponses: 3
    Dernier message: 10/07/2008, 18h38
  2. Tester lien in/existant
    Par yveslens dans le forum Langage
    Réponses: 3
    Dernier message: 03/07/2008, 17h46
  3. Réponses: 5
    Dernier message: 22/05/2008, 14h25
  4. Tester la non existence d'un fichier
    Par Pharmacos dans le forum Débuter
    Réponses: 3
    Dernier message: 20/05/2008, 20h25
  5. Tester si fenêtre existe après submit
    Par ronald dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/01/2005, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo