GridLayout在Android中太大了

时间:2017-01-18 12:23:03

标签: android android-gridlayout

我的GridLayout看起来像这样:

enter image description here

但看起来应该是这样的:

enter image description here

我不知道如何解决这个错误。我不使用dp,因为我想支持多种屏幕尺寸。

我的.xml文件:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/GridLayout"
    android:background="@drawable/border"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:columnCount="12"
    android:rowCount="2"
    android:orientation="horizontal" >

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button3"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="3" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button6"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="6" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button9"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="9" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button12"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="12" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button15"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="15" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button18"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="18" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button21"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="21" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button24"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="24" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button27"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="27" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button30"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="30" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button33"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="33" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button36"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="36" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button2"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="2" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button5"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="5" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button8"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="8" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button11"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="11" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button14"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="14" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button17"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="17" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button20"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="20" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button23"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="23" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button26"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="26" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button29"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="29" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button32"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="32" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button35"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="35" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button1"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="1" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button4"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="4" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button7"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="7" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button10"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="10" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button13"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="13" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button16"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="16" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button19"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="19" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button22"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="22" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button25"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="25" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button28"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="28" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button31"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="31" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button34"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="34" />
</GridLayout>

你知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

请记住,dp unity是相对于屏幕的像素比率,并由android自动调整到当前显示。

请注意,您可以根据屏幕尺寸,屏幕密度和屏幕方向为尺寸变量指定不同的值。

您要做的是设置相对于滚轮的尺寸,这不是一个元素,那么您想要设置按钮的网格宽度是多少?你无法以这种方式实现目标。

对我来说,你应该将你的背景分成两个图像:第一个带轮子,第二个带有背景。然后你可以使用一个RelativeLayout,其中轮子锚定在他父母的左边,第二个图像是GridLayout的背景,锚定在轮子图像的右边。通过这种方式,您可以将GridLayout宽度设置为match_parent,与toRightOf结合使用会产生占据右侧所有空白区域的GridLayout。

我举个例子:

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width=“match_parent”
    android:layout_height="match_parent”>

    <ImageView
        android:id="@+id/wheel” 
        android:layout_width=“wrap_content”
            android:layout_height="match_parent”
        android:src=“@drawable/wheel” />

<GridLayout 
    android:id="@+id/GridLayout"
    android:background="@drawable/border"
    android:layout_width=“match_parent”
    android:layout_height="wrap_content"
    android:toRightOf=“@+id/wheel”
    android:layout_alignParentRight="true"
    android:columnCount="12"
    android:rowCount="2"
    android:orientation="horizontal" >

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button3"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="3" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button6"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="6" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button9"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="9" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button12"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="12" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button15"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="15" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button18"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="18" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button21"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="21" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button24"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="24" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button27"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="27" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button30"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="30" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button33"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="33" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button36"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="36" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button2"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="2" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button5"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="5" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button8"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="8" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button11"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="11" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button14"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="14" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button17"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="17" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button20"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="20" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button23"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="23" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button26"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="26" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button29"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="29" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button32"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="32" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button35"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="35" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button1"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="1" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button4"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="4" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button7"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="7" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button10"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="10" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button13"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="13" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button16"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="16" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button19"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="19" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button22"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="22" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button25"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="25" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button28"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="28" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button31"
        android:background="@color/black"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="31" />

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/button34"
        android:background="@color/red"
        android:textColor="@color/white"
        android:layout_gravity="left|top"
        android:text="34" />
</GridLayout>


</RelativeLayout>

现在我无法尝试,让我知道它是否有效