android studio LinearLayout 图片起点

android studio LinearLayout image starting point

我是 android 编程的新手,我现在正尝试将 "circle ball" 图像文件放在中间的 LinearLayout 中。因此,我尝试将 7 个 LinearLayouts 平分,并尝试将图像放在第 4 个 LinearLayout 的底部。下面的代码显示我有 7 LinearLayouts。如何在第 4 个 LinearLayout 的底部放置 "circle ball" 图像?另外,创建 7 LinearLayouts 是个好主意吗?当我单击 "next" Button.

时,球的目的是将球移动到下一个 LinearLayout
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:layout_above="@+id/view">

    <LinearLayout
        android:id="@+id/layout1"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"/>
    <LinearLayout
        android:id="@+id/layout2"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"/>
    <LinearLayout
        android:id="@+id/layout3"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"/>
    <LinearLayout
        android:id="@+id/layout4"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"/>
    <LinearLayout
        android:id="@+id/layout5"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"/>
    <LinearLayout
        android:id="@+id/layout6"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"/>
    <LinearLayout
        android:id="@+id/layout7"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"/>

</LinearLayout>

您发布的布局设计非常糟糕。如果您只想在屏幕上显示图像,那么直接将图像放入 LinearLayout 并将布局的 gravity 设置为 center.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match+parent"
    android:gravity="center">

    <ImageView ... />

</LinearLayout>

或者,如果您的布局中还有其他视图并且您希望将图像放置在 center 中,则使用 RelativeLayout

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_centerInParent="true"
        ... />

</RelativeLayout>

使用 RelativLayout 添加 Imageview 如下所示,如果您想移动该图像而不是 您可以使用 onClick 方法 并在该方法中 更改图像视图的 src。

myImage.setImageResource(R.drawable.yourImage);

将布局更改为:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/view"
    android:orientation="vertical"
    android:weightSum="7">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:id="@+id/layout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal" />

        <LinearLayout
            android:id="@+id/layout2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal" />

        <LinearLayout
            android:id="@+id/layout3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal" />

        <LinearLayout
            android:id="@+id/layout4"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal" />

        <LinearLayout
            android:id="@+id/layout5"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal" />

        <LinearLayout
            android:id="@+id/layout6"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal" />

        <LinearLayout
            android:id="@+id/layout7"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="horizontal" />

    </LinearLayout>

    <ImageView
        android:layout_width="350dp"
        android:layout_height="100"
        android:layout_alignParentBottom="false"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerHorizontal="true"
        android:layout_marginEnd="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="300dp"
        android:src="@drawable/cal" />

</RelativeLayout>

IMO 这不是具有 7 个嵌套布局的好方法。如果您希望动态移动视图(比如说点击),您可以使用相对布局,然后将 onClickListener 附加到该视图。