分布在图像顶部的按钮,无论屏幕大小如何,都保持在相同位置

时间:2014-12-28 13:05:51

标签: android android-layout

我正在创建一个应用程序,我正在执行以下操作:

sorry about terrible paint skills

25个按钮(红色,5x5)在背景中均匀分布在整个图像中,在左侧5个按钮(棕色)稍微靠近边缘。

我在这里看了几个类似的问题,有相对的布局,但问题是,只要我调整一个屏幕尺寸,它就不再适合另一个......

以下是我在手机屏幕上的显示效果:

Fits as it should

在其他屏幕上:

enter image description here enter image description here

这是我的代码:

(之前有一堆代码,但有关图像的部分内容):     

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:scaleType="fitXY"
            android:src="@drawable/chord_box1" />

        <LinearLayout
            android:id="@+id/firstrow"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/imageView1"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:gravity="center_horizontal"
            android:orientation="vertical"
            android:weightSum="10" >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:layout_weight="4"
                android:gravity="center_horizontal"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/empty1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="Button"
                    android:visibility="invisible" />

                <TextView
                    android:id="@+id/fretposition1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="1" />

                <TextView
                    android:id="@+id/fretposition2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="2" />

                <TextView
                    android:id="@+id/fretposition3"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="3" />

                <TextView
                    android:id="@+id/fretposition4"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="4" />

                <TextView
                    android:id="@+id/fretposition5"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="5" />

                <Button
                    android:id="@+id/empty2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="Button"
                    android:visibility="invisible" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:layout_weight="1.1"
                android:gravity="center_horizontal"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/empty4"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.55"
                    android:text=""
                    android:visibility="invisible" />

                <Button
                    android:id="@+id/fret10"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="-20dp"
                    android:layout_weight="1"
                    android:background="@drawable/no_press1"
                    android:text=""
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret11"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret12"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="2"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret13"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="3"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret14"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="4"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret15"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/empty3"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="Button"
                    android:visibility="invisible" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:layout_weight="1"
                android:gravity="center_horizontal"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/empty5"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.55"
                    android:text=""
                    android:visibility="invisible" />

                <Button
                    android:id="@+id/fret20"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="-20dp"
                    android:layout_weight="1"
                    android:background="@drawable/no_press1"
                    android:text=""
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret21"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret22"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="2"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret23"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="3"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret24"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="4"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret25"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/empty6"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="Button"
                    android:visibility="invisible" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:layout_weight="1"
                android:gravity="center_horizontal"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/empty7"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.55"
                    android:text=""
                    android:visibility="invisible" />

                <Button
                    android:id="@+id/fret30"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="-20dp"
                    android:layout_weight="1"
                    android:background="@drawable/no_press1"
                    android:text=""
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret31"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret32"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="2"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret33"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="3"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret34"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="4"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret35"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/empty8"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="Button"
                    android:visibility="invisible" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:layout_weight="1"
                android:gravity="center_horizontal"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/empty9"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.55"
                    android:text=""
                    android:visibility="invisible" />

                <Button
                    android:id="@+id/fret40"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="-20dp"
                    android:layout_weight="1"
                    android:background="@drawable/no_press1"
                    android:text=""
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret41"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret42"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="2"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret43"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="3"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret44"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="4"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret45"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/empty10"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text=""
                    android:visibility="invisible" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:layout_weight="1"
                android:gravity="center_horizontal"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/empty11"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.55"
                    android:text=""
                    android:visibility="invisible" />

                <Button
                    android:id="@+id/fret50"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="-20dp"
                    android:layout_weight="1"
                    android:background="@drawable/no_press1"
                    android:text=""
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret51"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret52"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="2"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret53"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="3"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret54"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="4"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/fret55"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@drawable/finger1"
                    android:text="1"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/empty12"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text=""
                    android:visibility="invisible" />
            </LinearLayout>

            <Button
                android:id="@+id/empty13"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text=""
                android:visibility="invisible" />
        </LinearLayout>
    </RelativeLayout>

我已经制作了第一排并尝试使其合适,但我不确定如何使其适合不同的屏幕。这是正确的方法,还是应该在java代码而不是xml上完成?

1 个答案:

答案 0 :(得分:1)

将顶级LinearLayout的layout_height更改为&#34; match_parent&#34;。然后它将垂直覆盖整个屏幕。

<LinearLayout
    android:id="@+id/firstrow"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignBottom="@+id/imageView1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:weightSum="10" >

您可能需要重新调整权重,使其看起来与之前完全一样。