Rembourrage indésirable autour d’une ImageView

J’ai besoin d’inclure un graphique d’en-tête dans toutes mes activités / vues. Le fichier avec l’en-tête s’appelle header.xml:

    

Notez l’ android:background="#00FF00" (vert), ce n’est que des fins de visualisation.

Je les inclue dans mes vues comme ceci:

    (...) 

Donc, quand je l’essaie, le résultat ressemble à l’image de gauche, au lieu de ce à quoi elle devrait ressembler (à droite):

noter la bordure verte

(1) Ceci – l’orange – la partie est l’image / ImageView en question
(2) La bordure verte non aimée. note: normalement, la zone verte serait transparente – elle est uniquement verte parce que je fixe l’ backgroundbackground .

Notez la bordure verte autour de l’image en haut; Cela fait partie de ImageView et je n’arrive pas à comprendre pourquoi il est là ou comment je peux m’en débarrasser. Il place tous les marges et marges à 0 (mais le résultat est le même quand je les omets). L’image est un jpeg 480x64px * et je le mets dans res / drawable (pas dans l’un des drawable-Xdpi ).

(* jpeg, car il semble que je suis tombé sur le vieux problème de gamma png – au début, je travaillais sur le problème en faisant de la bordure verte la même orange que l’image et les couleurs ne correspondaient pas.)

Je l’ai essayé sur mon htc desire / 2.2 / Build 2.33.163.1 et sur l’émulateur. J’ai aussi décrit le problème à quelqu’un dans #android-dev; Elle pouvait reproduire le problème mais n’avait aucune explication non plus. la cible de construction est 1.6.

mettre à jour @tehgoose: ce code donne exactement le même résultat rempli en haut et en bas.

   <!--  -->   (... rest of the elements)   

enfin!

  

L’atsortingbut adjustViewbounds a fait l’affaire:

Définissez cette valeur sur true si vous souhaitez que ImageView ajuste ses limites afin de conserver le format de son dessinable.

Je suis tombé dessus par ici . Merci de votre aide!

 android:scaleType="fitXY" 

Ça marche pour moi.

Cela concerne le format de l’image. Par défaut, le système conserve les proportions d’origine de la source d’image. Ce qui, dans la plupart des cas, ne correspond pas exactement à la disposition ou aux dimensions spécifiées dans la mise en page. Donc,

  1. Modifiez la taille de l’image pour l’adapter à la mise en page spécifiée ou
  2. Utilisez android:scaleType pour adapter l’image. Par exemple, vous pouvez spécifier android:scaleType="fitXY"

Peut-être que vous pouvez donner specific height to imageView say 50dp or 40dp et adjust image to make green border verte.

Par exemple: android:layout_height="40dp"

 android:layout_height="wrap_content" 

Vous devez le changer pour “fill_parent”

Vous devrez peut-être aussi redimensionner votre image pour que le ratio soit suffisant

Je ne comprends pas pourquoi vous avez besoin de la disposition des frameworks ici. Sans elle, votre image ne ferait que remplir l’écran.

EDIT: oui, désolé, le xml est la hauteur de l’imageview.

Vous devez donner forme à imageview pour donner une meilleure image.

Voici ce que j’ai utilisé: