360 Stimmen

Zentrieren einer Schaltfläche in einem linearen Layout

Ich verwende ein lineares Layout, um ein ziemlich helles Startbild anzuzeigen. Es hat eine Schaltfläche, die sowohl horizontal als auch vertikal im Bildschirm zentriert werden soll. Doch egal, was ich versuche, die Schaltfläche wird oben ausrichten Zentrum zu tun. Ich habe die XML unten enthalten, kann jemand mich in die richtige Richtung zeigen?

<?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>

466voto

lancha90 Punkte 5017

Zentrieren mit einem LinearLayout:

<LinearLayout
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" >

    <ImageButton
        android:id="@+id/btnFindMe"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/findme" />
</LinearLayout>

390voto

Dave Webb Punkte 184809

Wenn Sie ein Element in der Mitte des Bildschirms zentrieren möchten, verwenden Sie nicht eine LinearLayout da diese für die Anzeige einer Reihe von Artikeln in einer Reihe gedacht sind.

Verwenden Sie eine RelativeLayout stattdessen.

Also ersetzen:

android:layout_gravity="center_vertical|center_horizontal"

für den jeweiligen RelativeLayout Option:

android:layout_centerInParent="true"

Ihre Layout-Datei wird also so aussehen:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageButton android:id="@+id/btnFindMe" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/findme"></ImageButton>

</RelativeLayout>

47voto

rui Punkte 10635

Haben Sie versucht, den Begriff android:gravity="center_vertical|center_horizontal" innerhalb des Layouts und der Einstellung android:layout_weight="1" auf dem Bild?

37voto

hopcraft Punkte 460

Eine häufig verwendete Methode, die mit linearem Layout funktioniert, ist das Festlegen einer Eigenschaft für die Bildschaltfläche

android:layout_gravity="center"

Sie können wählen, ob jedes Objekt im linearen Layout links-, mittel- oder rechtsbündig ausgerichtet werden soll. Beachten Sie, dass die obige Zeile genau dasselbe ist wie

android:layout_gravity="center_vertical|center_horizontal"

12voto

Tanmay Sahoo Punkte 451

Dies hinzufügen

android:gravity="center"

In LinearLayout.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X