Jump to content

Coller un élément au bord inférieur de l'écran


guiom056

Recommended Posts

Bonjour,

Existe-t-il une propriété permettant de coller un élément au bord inférieur de l'écran ?

Je souhaite positionner une image en bas de l'écran, mais il y a systématiquement un espace entre le bas de l'image et le bord de l'écran, qui est de la couleur de l'arrière plan du layout...

Merci d'avance ;)

Link to comment
Share on other sites

T'es dans un RelativeLayout (hauteur "fill_parent") ?

Si oui tu dois utiliser la propriété layout_alignParentBottom="true" sur ton image. Si ça te laisse un espace, je ne vois pas (tu as peut être défini un margin ou padding quelque part?).

Link to comment
Share on other sites

Non j'utilise un LinearLayout. Cette propriété n'a pas l'air utilisable dans ce cas.

Et j'ai défini des margin pour les objets qui sont situés dans la même fenêtre, mais pas pour l'image que je veux coller au bord inférieur...

Link to comment
Share on other sites

Le voici :

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="fill_parent" 
             android:layout_height="fill_parent" 
             android:orientation="vertical" 
             android:background="#ccc">

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   android:background="#ffffff"
   >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gotoo"
android:layout_gravity="center"
android:layout_marginTop="15px"
/>     
<TextView  
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:text="@string/titre"
   android:textSize="@dimen/dimtitre"
   android:layout_marginTop="15px"
   android:layout_gravity="center"
   />
<TextView  
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:text="Login : "
   android:layout_marginTop="15px"
   android:layout_marginLeft="15px"
   android:layout_marginRight="15px"
   />
<EditText
android:id="@+id/login"
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:layout_marginLeft="15px"
   android:layout_marginRight="15px"
   android:text="gfavre"
/>
<TextView  
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:text="Mot de passe : "
   android:layout_marginTop="15px"
   android:layout_marginLeft="15px"
   android:layout_marginRight="15px"
   />
<EditText
android:id="@+id/mdp"
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:password="true"
android:layout_marginLeft="15px"
   android:layout_marginRight="15px"
   android:text="gfavregfavre"
/> 
<Button
android:id="@+id/connecterBtn" 
android:text="Se connecter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"	
android:layout_gravity="center_horizontal"
android:layout_marginTop="15px"
/>  
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/herbe"
/>  


</LinearLayout>

</ScrollView>

L'image que je veux coller au bord est la dernière ImageView du code ;)

Link to comment
Share on other sites

Hum, c'est vrai que c'ets bizarre.

J'ai tester pas mal d'option, mais je ne comprends pas pourquoi la imageview ne respecte pas la contrainte "wrap_content", elle englobe la barre du bas.

Je te conseillerai comme Lord Yu d'utiliser un relativeLayout pour avoir un plus grand choix d'option. Tu verras c'est pas compliqué ;)

Link to comment
Share on other sites

Je ne comprends pas exactement ce que tu veux faire. Mettre l'image au bord de l'écran ? Pourquoi est-ce que ton Layout est inclus dans un ScrollView, alors ?

De plus, avec l'utiliation d'un LinearLayout avec des margin spécifiées en px (pas bon ça, pas portable), tu ne réussiras à positionner tes éléments que par rapport à l'écran de ton device, dès que tu passeras sur un autre appareil avec une résolution différente, ça ne marchera plus

Enlève le ScrollView, et passe en RelativeLayout en faisant comme te l'indiquais Lord Yu, c'est la meilleure façon de réussir à faire ce que tu veux de manière propre et portable

Link to comment
Share on other sites

Je confirme ce que dit chpil, passe tes valeurs en dp plutôt que px.

Ensuite le scrollview est bien pratique pour les petits écrans si tu as beaucoup d'infos à afficher donc si tu tiens vraiment vraiment à la garder, met le dans un RelativeLayout et sors en ton image si tu souhaites qu'elle reste fixe en bas lorsque tu scroll ton écran.

Link to comment
Share on other sites

px

Pixels - correspond au vrai "petit carré" de couleur

dp (dpi)

Density-independent Pixels - c'est une unité abstraite spécifique à Android basée sur la densité de ton écran. Ton écran est réparti en 160 dpi ce qui veut dire que 1dpi sera égal à un nombre de pixel différent en fonction de la taille de ton écran, c'est proportionnel. Avec cette unité tu garde un affichage uniforme.

Link to comment
Share on other sites

Par contre, comment faire pour mettre un scrollview à l'intérieur d'un relativelayout ?

Lorsque j'exécute ce que j'ai fait, j'ai un message qui apparaît disant que l'application s'est arrêtée de manière inexpliquée... :(

Link to comment
Share on other sites

Par contre, comment faire pour mettre un scrollview à l'intérieur d'un relativelayout ?

De la même façon que tu mets n'importe quelle autre type d'éléments dans un RelativeLayout

Lorsque j'exécute ce que j'ai fait, j'ai un message qui apparaît disant que l'application s'est arrêtée de manière inexpliquée... :(

Et quelle est l'erreur/la trace de l'exception qui se produit ?

Link to comment
Share on other sites

Je crois que c'est résolu, c'est parce que j'avais oublié de remettre un layout dans le scrollview donc il ne pouvait pas mettre un layout sur plusieurs éléments... :|

Edit : il y a du mieux. L'image est bien collée au bas de l'écran lorsqu'on tient le téléphone en mode "paysage". Mais il y a toujours un espace entre le bas de l'image et la bordure inférieure de l'écran si on le tient à la verticale !

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...