web-dev-qa-db-fra.com

Impossible de convertir @ drawable / en drawable

J'ai ajouté une image à mon Android que je veux utiliser dans l'interface utilisateur. J'ai ajouté le fichier my-image.png au drawable directory (à tous les 4 répertoires drawable créés avec le projet), et ajouté le ImageView à la mise en page:

<ImageView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:id="@+id/imageView"
    Android:layout_alignParentBottom="true"
    Android:layout_alignLeft="@+id/textView"
    Android:layout_marginBottom="63dp"
    Android:src="@drawable/my-image" />

Le problème est que j'obtiens l'erreur suivante:

Problèmes de rendu

Impossible de convertir @ drawable/my-image en un drawable

Voici la capture:

enter image description here

De plus, si j'essaie de compiler le projet, j'obtiens l'erreur suivante:

Gradle: l'exécution a échoué pour la tâche ': MyProject: processDebugResources'.

Pourquoi ai-je ces erreurs et comment puis-je les résoudre? Suis-je en train de manquer quelque chose? Je viens de commencer Android development.

27
anderZubi
Gradle: Execution failed for task ':MyProject:processDebugResources'.

car vous avez une erreur de convention de dénomination dans les ressources

file name: must contain only [a-z0-9_.]

Renommez le nom du fichier en my_image

57
Tarsem Singh
Rename this drawable @drawable/my-image to @drawable/my_image 
5
Haresh Chhelana

Essayez d'utiliser le soulignement et les petits caractères dans le nom de fichier, par exemple

my_image.png

5
Adil Soomro

Essayez d'utiliser uniquement abc ... xyz et 0123 ... 9, n'utilisez pas -, utilisez plutôt _ (tiret bas).

Utilisation my_name au lieu de my-name, car les tirets (-) ont une signification particulière dans le codage, donc il ne peut pas être utilisé littéralement avec des chaînes.

2
Dharmik Chauhan

Si la convention de dénomination est correcte, essayez:

Ouvrez la boîte de dialogue des ressources et voyez si l'aperçu png de l'image est affiché.

Sélectionnez l'image en mode Création> Aller aux propriétés> Cliquez sur le bouton Points de suspension> Dessiné> Recherchez votre image png et cliquez dessus.

Si l'aperçu n'est pas affiché, annulez les ressources et essayez de réenregistrer l'image à nouveau au format png.

Cet exemple utilise Photoshop CS2. Ouvrez l'image dans Photoshop et sélectionnez Fichiers> Enregistrer pour le Web> Cliquez sur Enregistrer. (N'utilisez pas Fichier> Enregistrer sous)

0
beaumondo