web-dev-qa-db-fra.com

ImageView affiché dans la présentation mais pas sur le périphérique réel

J'ai un ImageView que je veux afficher correspondant à toute la largeur de l'appareil, je me suis rendu compte que comme ceci:

<ImageView
    Android:id="@+id/home_bar_newvault"
    Android:layout_width="wrap_content"
    Android:layout_height="40dp"
    Android:scaleType="centerCrop"
    Android:layout_alignParentBottom="true"
    Android:src="@drawable/home_bar" />

Home_bar est un fichier image PNG ayant les dimensions suivantes: 2399x254. Lorsque je choisis d'afficher la disposition graphique de l'interface utilisateur, l'image s'affiche correctement au bas de l'activité. Cependant, lorsque je lance l'application sur mon appareil, la vue Imageview ne s'affiche pas du tout. 

19
Tim Kranen

Très bien, j'ai essayé de changer la résolution de l'image (en la coupant en deux pour la convertir en 1000x130), ce qui a permis de résoudre le problème. Je pense qu'Android ne peut pas restituer de grandes images comme ça directement? Je ne sais pas, si vous en savez plus sur le sujet, n'hésitez pas à y répondre! Quoi qu'il en soit, la réduction de l'image a fonctionné.

15
Tim Kranen

J'ai eu le même problème, il ne montre que dans l'onglet Conception pour Android Studio 2.2. 

Ce que j'ai fait pour que cela fonctionne est de changer la clé automatique attribuée (remplie via Drag/Drop ImageView) de app:srcCompat="@drawable/logo" à Android:src="@drawable/logo" dans l'onglet Texte pour la faire apparaître à la fois sur l'émulateur et sur le périphérique, par exemple.

<ImageView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:src="@drawable/logo"
    Android:layout_alignParentTop="true"
    Android:layout_centerHorizontal="true"
    Android:layout_marginTop="75dp"
    Android:id="@+id/logoImageView"
    Android:scaleType="fitXY"
    Android:scaleX="1.5"
    Android:scaleY="1.5" />
48
Woppi

vous pouvez utiliser:

Android:background="@drawable/home_bar"

au lieu de:

Android:src="@drawable/home_bar"
7
Gouda Elalfy

Utilisez le dossier drawable-nodpi dans res si l'image est trop grande.

4
Francis

J'ai eu un problème avec un téléphone samsung qui n'affichait pas mon dessin mais cela fonctionnait bien sur un autre téléphone. La photo n'était pas en grandes dimensions ou autrement anormale. 

Pour résoudre ce problème, j'ai simplement placé mon fichier image dans un sous-dossier pouvant être dessiné au lieu de l'avoir dans le dossier principal pouvant être dessiné. E.g de res/drawable à res/drawable-mdpi a fonctionné pour moi. Si vous avez une image à utiliser pour tout ce qui n'a pas un dpi spécifique, mettez-la dans res/drawable-nodpi. Voici un peu plus sur les dossiers dpi.

0
ZooMagic