47 votes

Créer un Drawable vide dans Android

La création d'un Drawable complètement vide semble être un besoin courant, en tant que porte-documents, état initial, etc., mais il ne semble pas y avoir de bonne façon de le faire... du moins en XML. Plusieurs endroits font référence à la ressource système @android:drawable/empty mais pour autant que je puisse dire (c'est-à-dire que ce n'est pas dans les documents de référence, et aapt s'arrête en disant qu'il ne peut pas trouver la ressource) cela n'existe pas.

Existe-t-il un moyen général de référencer un Drawable vide, ou faut-il créer un faux PNG vide pour chaque projet ?

102voto

Emil Points 883

Pour moi, cela n'a pas fonctionné lorsque j'ai essayé d'utiliser @android:id/empty lors de la création d'un objet vide à dessiner. Pour moi, @android:color/transparent était le bon.

14voto

user1681572 Points 946

J'utilise un ShapeDrawable c'est-à-dire créer mon propre drawable/empty.xml contenant seulement <shape/>

5voto

wirbly Points 1052

Pour moi, l'utilisation de @Android:drawable/empty affichait une erreur et empêchait la compilation. L'utilisation de @Android:id/empty corrigeait l'erreur et me permettait de compiler, mais affichait "NullPointerException : null" dans l'éditeur Layout d'Eclipse. Je l'ai changé en @Android:color/transparent et maintenant tout va bien.

Je ne peux pas encore voter, sinon j'aurais mis en avant la réponse d'Emil.

5voto

laalto Points 50581

@null en XML a le même effet que l'utilisation d'un null en tant que Drawable en Java.

0 votes

J'aimerais que cela fonctionne, mais si je l'utilise dans un XML de dessinable et que celui-ci est défini comme arrière-plan dans un XML de mise en page, j'obtiens l'erreur "La balise <item> nécessite un attribut 'drawable' ou une balise enfant définissant un dessinable".

2voto

Kai, je ne sais pas pourquoi c'est le cas, mais j'ai eu le même problème. Je pense que cela peut être lié à la version d'Android pour laquelle vous compilez ? Dans tous les cas, j'ai découvert que le simple fait d'utiliser @Android:id/empty là où vous utiliseriez @Android:drawable/empty fait l'affaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X