将图像移动到布局的中心

时间:2018-10-26 07:45:26

标签: android android-layout

我想知道如何将linearLayout2移动到linearLayout1?的中心 imageView应该在中间

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        android:id="@+id/linearLayout1"
        android:background="@android:color/transparent"
        android:layout_marginTop="15dp"
        android:layout_marginBottom="15dp"
        android:layout_width="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical"
        android:gravity="center_horizontal"
        android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageView
            android:layout_gravity="center"
            android:background="@drawable/circle"
            android:layout_marginTop="75dp"
            android:src="@mipmap/ic_launcher_round"
            android:id="@+id/appsLogo"
            android:layout_width="120dp"
            android:layout_height="120dp"/>

    <LinearLayout android:layout_width="250dp" android:layout_height="220dp"
                  android:id="@+id/linearLayout2"
                  android:layout_below="@+id/appsLogo"
                  android:background="@color/white"
                  android:orientation="vertical">

        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
                  android:layout_gravity="center|bottom"
                  android:textColor="@color/colorPrimaryDark"
                  android:layout_marginTop="10dp"
                  android:textSize="25dp"
                  android:text="Choose an option"/>

        <Button android:layout_width="150dp" android:layout_height="50dp"
                android:layout_gravity="center"
                android:layout_marginTop="20dp"
                android:textColor="@color/white"
                android:id="@+id/cameraBtn"
                android:background="@color/lightseagreen"
                android:text="Camera"/>

        <Button android:layout_width="150dp" android:layout_height="50dp"
                android:layout_marginTop="20dp"
                android:layout_gravity="center"
                android:textColor="@color/white"
                android:id="@+id/galleryBtn"
                android:background="@color/darkgrey"
                android:text="Gallery"/>
    </LinearLayout>
</LinearLayout>

当前输出

enter image description here

linearLayout2应该向上移动直到到达imageView中心。

2 个答案:

答案 0 :(得分:1)

使用 react-native

尝试一下
RelativeLayout

更新

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="15dp"
    android:layout_marginBottom="15dp"
    android:background="@android:color/transparent"
    android:gravity="center"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/appsLogo"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_gravity="center"
        android:layout_marginTop="75dp"
        android:layout_centerInParent="true"
        android:background="@drawable/ic_marker"
        android:src="@mipmap/ic_launcher_round" />

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_centerInParent="true"
        android:layout_below="@id/appsLogo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center|bottom"
            android:layout_marginTop="10dp"
            android:text="Choose an option"
            android:textColor="@color/colorPrimaryDark"
            android:textSize="25dp" />

        <Button
            android:id="@+id/cameraBtn"
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:layout_gravity="center"
            android:layout_marginTop="20dp"
            android:text="Camera" />

        <Button
            android:id="@+id/galleryBtn"
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:layout_gravity="center"
            android:layout_marginTop="20dp"
            android:text="Gallery" />
    </LinearLayout>


</RelativeLayout>

答案 1 :(得分:0)

在您的线性布局2中添加android:layout_gravity="center"。说明android:layout_gravity="center"android:gravity="center"之间的区别:

android:layout_gravity="center" 这会将布局设置为其父布局的中心。

android:gravity="center" ,这会将此布局的子内容设置在其中心。

要详细了解这两者之间的区别,请检查here