2011-02-01 4 views
1

Les docs disent de mettre les fichiers d'état XML pour les boutons dans le dossier "drawable" - lequel d'au moins trois ?! (Le mettre dans res/drawable donne une erreur de système de fichiers désynchronisé et le mettre dans chacun des drawable- * dpi où * est l, m, h est aussi une erreur.)Fichiers d'état de bouton Android

+0

Mon mauvais, n'a pas eu la partie XML. Je vais y regarder. – gnclmorais

+0

Autant que je sache, vous pouvez supprimer ces trois dossiers drawable- * dpi et utiliser un seul dessinable. – gnclmorais

+0

@MEGA: Pas de soucis. Je propose 'drawable-nodpi' pour les fichiers XML. Je déteste les docs pour leur ambiguïté. Rock sur Apple. – SK9

Répondre

-2

Je propose drawable-nodpi parce que cela fonctionne. Cependant, cela n'est pas évident dans les documents quand cela doit être le cas.

Comment faire quelque chose de compliqué? Rends-le ambigu.

+3

C'est une mauvaise réponse. Aussi, écrire "Rock on Apple" dans un commentaire sur une question Android vous donne l'air ... stupide. – Felix

+0

-nodpi est un qualificatif spécial avec une signification spéciale. –

+0

Un autre exemple: "(Liste de niveaux) Un dessin qui gère un certain nombre de dessins alternatifs, chacun affecté d'une valeur numérique maximale Définition de la valeur de niveau du dessinable avec setLevel() charge la ressource ** drawable dans la liste de niveaux qui a ** une ** valeur android: maxLevel supérieure ou égale à la valeur passée à la méthode. " MAIS il peut y avoir plus d'une ressource drawable avec un maxLevel supérieur à la valeur passée! Je trouve ce genre d'ambiguïté très inutile. – SK9

1

res/drawable est ok et par défaut.

La "fs de synchronisation" provient probablement de votre IDE lorsque vous placez les fichiers par ex. via la ligne de commande ou dans le dossier. Les EDI tentent généralement de se souvenir de l'état des fichiers et de signaler les changements externes de cette façon. Essayez d'émettre une commande "refresh" dans l'EDI.

res/drawable est une solution de repli qui est prise si vous ne fournissez pas d'images plus spécifiques dans res/drawable- * dpi ou aussi quelques équivalents d'orientation.

Jetez un oeil à la documentation: http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

drawable-nodpi est un répertoire spécial pour les fichiers que vous ne voulez pas redimensionné, ce qui n'a pas de sens du tout pour les boutons, comme vous voulez des boutons à l'échelle selon taille de l'écran/dpi.

+0

Merci pour le post. Comme le fichier est un fichier XML, la mise à l'échelle n'est pas pertinente. J'ai pris soin de la mise à l'échelle du bouton séparément (en introduisant des images de bouton). Il n'y a pas de mal à mettre mon sélecteur XML dans -nodpi alors .............? o/w Pouvez-vous clarifier ceci en donnant un exemple de quand vous utiliseriez la signification spéciale de -nodpi sinon ici? – SK9

+0

Ah, vous avez mal compris alors partiellement. Je mettrais (met) le xml dans res/drawable/car c'est le répertoire de repli (c'est-à-dire que c'est là que le système regarde par défaut, si rien d'autre n'est fourni). –

+0

Merci. Je vais essayer encore. Ma raison initiale pour poster la question n'était pas l'erreur du système de fichiers d'Eclipse, mais que le dessinable était complètement manqué par Java quand je l'ai placé dans res/drawable. Pour certaines raisons. – SK9

0

Vous devez utiliser res/drawable pour vos tirages de liste d'état XML. Si vous obtenez l'erreur "out of sync filesystem", actualisez simplement le projet Eclipse (sélectionnez-le dans la fenêtre des projets et appuyez sur F5).

Les listes d'état XML ne sont (dans la plupart des cas) pas indépendantes du DPI. Cependant, leur contenu ne changera pas dans les différents environnements DPI. Fondamentalement, cela signifie que si vous faites référence à un dessinable brut appelé, par exemple, @drawable/btn_pressed, à partir d'une liste d'état, Android recherchera le fichier approprié pour ce dessinable, en fonction de l'environnement (drawable-*dpi/btn_pressed.png).

Comme vous pouvez le voir, bien que la liste d'état soit la même sur LDPI, MDPI et HDPI, les tirages référencés à l'intérieur peuvent changer.