android studio LinearLayout图像的起点

时间:2016-03-17 09:28:54

标签: android android-linearlayout

我对Android编程很新,我现在正试图定位一个"圆球"将图像文件放入中间的LinearLayout。所以,我尝试将7个LinearLayouts平分,我试图将图像放在第4个LinearLayout的底部。下面的代码显示我有7 LinearLayouts。我怎样才能放一个"圆球"图像在第4个LinearLayout的底部?另外,创建7 LinearLayouts是个好主意吗?当我点击" next"时,球的目的是将球移动到下一个LinearLayoutButton

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

3 个答案:

答案 0 :(得分:0)

您发布的布局设计非常糟糕。如果您希望在屏幕上显示所有图片,则直接将图片放入LinearLayout并将布局设置为gravitycenter

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

答案 1 :(得分:0)

使用 RelativLayout 添加myImage.setImageResource(R.drawable.yourImage); 如下所示,如果您要移动该图片而不是您可以使用onClick方法并在该方法中< strong>更改图像视图的src。

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

将您的布局更改为:

class Deal(models.Model):
    saved = models.BooleandField()
    ...

答案 2 :(得分:0)

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