J'utilise une disposition linéaire pour afficher un écran initial assez léger. Il a 1 bouton qui est censé se centrer à l'écran à la fois horizontalement et verticalement. Cependant, peu importe ce que j'essaie de faire, le bouton alignera le haut au centre. J'ai inclus le XML ci-dessous, quelqu'un peut-il m'orienter dans la bonne direction?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@drawable/findme"></ImageButton>
</LinearLayout>
layout_width
"wrap_content". Par la suite, ils ontlayout_gravity
fait ce qu'ils étaient censés faire!Réponses:
Si vous souhaitez centrer un élément au milieu de l'écran, n'utilisez pas
LinearLayout
car ils sont destinés à afficher un certain nombre d'éléments dans une rangée.Utilisez
RelativeLayout
plutôt un .Remplacez donc:
pour l'
RelativeLayout
option pertinente :Ainsi, votre fichier de mise en page ressemblera à ceci:
la source
Centrer à l'aide d'un LinearLayout:
la source
Avez-vous essayé de définir l'
android:gravity="center_vertical|center_horizontal"
intérieur de la mise en page et le réglageandroid:layout_weight="1"
de l'image?la source
android:weight="1"
le bouton pour le centrer.)Une méthode couramment utilisée qui fonctionne avec une disposition linéaire consiste à définir une propriété sur le bouton d'image
Vous pouvez choisir d'aligner à gauche, d'aligner au centre ou d'aligner à droite chaque objet dans la disposition linéaire. Notez que la ligne ci-dessus est exactement la même que
la source
Ajoute ça
Dans LinearLayout.
la source
android:gravity="center"
Si vous utilisez,
LinearLayout
vous pouvez ajouter le centre de gravité:la source
facile avec ça
la source
Vous pouvez utiliser le
RelativeLayout
.la source
Le code ci-dessus fonctionnera.
la source
échantillon complet et fonctionnel de ma machine ...
la source
Selon la documentation Android pour les attributs XML d' Android: layout_gravity , nous pouvons le faire facilement :)
la source
Définissez sur true
android:layout_alignParentTop="true"
etandroid:layout_centerHorizontal="true"
dans le bouton, comme ceci:la source
Vous pouvez également essayer ce code:
la source
utilisez simplement (pour le faire au centre de votre mise en page)
et utilise
changer de position
la source
Vous pouvez également définir la largeur de la LinearLayout à
wrap_content
et de l' utilisationandroid:layout_centerInParent
,android:layout_centerVertical="true"
:la source
Cela fonctionne pour moi.
la source
Avez-vous essayé cela?
la source
utilisation
la source
Il serait plus facile d'utiliser des dispositions relatives, mais pour les dispositions linéaires, je centre généralement en m'assurant que la largeur correspond au parent:
puis juste donner des marges à droite et à gauche en conséquence.
la source