如何在所有Android平台上对齐按钮?

时间:2015-12-27 05:09:00

标签: java android xml android-studio

我使用网格布局在屏幕上放置一个8x8网格按钮。由于我是Android的新手,我不确定如何使所有按钮适合所有不同的Android手机。

例如,当我在虚拟Nexus 6上安装8x8网格时,按钮非常合适。但是在Nexus 7上,左侧行和屏幕边缘以及右侧行和屏幕右侧边缘之间有额外的空间。然后在Nexus 4上,第7和第8列按钮不在屏幕上。

我确定你理解我想要表达的观点,所以如果有人能帮助我理解它,那将会受到赞赏!!

根据要求,XML布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".GameActivity"
tools:showIn="@layout/activity_game">


<GridLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:id="@+id/gridLayout">

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile0"
        android:layout_row="0"
        android:layout_column="0" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile1"
        android:layout_row="0"
        android:layout_column="1" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile2"
        android:layout_row="0"
        android:layout_column="2" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile3"
        android:layout_row="0"
        android:layout_column="3" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile4"
        android:layout_row="0"
        android:layout_column="4" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile5"
        android:layout_row="0"
        android:layout_column="5" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile6"
        android:layout_row="0"
        android:layout_column="6" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile7"
        android:layout_row="0"
        android:layout_column="7" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_row="1"
        android:layout_column="0"
        android:id="@+id/tile8" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile9"
        android:layout_row="1"
        android:layout_column="1" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile10"
        android:layout_row="1"
        android:layout_column="2" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile11"
        android:layout_row="1"
        android:layout_column="3" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile12"
        android:layout_row="1"
        android:layout_column="4" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile13"
        android:layout_row="1"
        android:layout_column="5" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile14"
        android:layout_row="1"
        android:layout_column="6" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile15"
        android:layout_row="1"
        android:layout_column="7" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile16"
        android:layout_row="2"
        android:layout_column="0" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile17"
        android:layout_row="2"
        android:layout_column="1" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile18"
        android:layout_row="2"
        android:layout_column="2" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile19"
        android:layout_row="2"
        android:layout_column="3" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile20"
        android:layout_row="2"
        android:layout_column="4" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile21"
        android:layout_row="2"
        android:layout_column="5" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tile22"
        android:layout_row="2"
        android:layout_column="6" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile23"
    android:layout_row="2"
    android:layout_column="7"
    android:layout_below="@+id/gridLayout"
    android:layout_alignStart="@+id/gridLayout" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile24"
    android:layout_row="3"
    android:layout_column="0"
    android:layout_below="@+id/tile23"
    android:layout_alignLeft="@+id/gridLayout" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile25"
    android:layout_row="3"
    android:layout_column="1"
    android:layout_below="@+id/tile24"
    android:layout_alignLeft="@+id/gridLayout" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile26"
    android:layout_row="3"
    android:layout_column="2"
    android:layout_alignBottom="@+id/tile25"
    android:layout_toEndOf="@+id/tile25" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile27"
    android:layout_row="3"
    android:layout_column="3"
    android:layout_above="@+id/tile26"
    android:layout_toRightOf="@+id/tile25" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile28"
    android:layout_row="3"
    android:layout_column="4"
    android:layout_above="@+id/tile27"
    android:layout_toRightOf="@+id/tile25" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile29"
    android:layout_row="3"
    android:layout_column="5"
    android:layout_below="@+id/tile30"
    android:layout_toRightOf="@+id/tile27" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile30"
    android:layout_row="3"
    android:layout_column="6"
    android:layout_alignTop="@+id/tile27"
    android:layout_toEndOf="@+id/tile27" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile31"
    android:layout_row="3"
    android:layout_column="7"
    android:layout_above="@+id/tile27"
    android:layout_toEndOf="@+id/tile27" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile32"
    android:layout_row="4"
    android:layout_column="0"
    android:layout_below="@+id/gridLayout"
    android:layout_toEndOf="@+id/tile31" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile33"
    android:layout_row="4"
    android:layout_column="1"
    android:layout_above="@+id/tile29"
    android:layout_toEndOf="@+id/tile29" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile34"
    android:layout_row="4"
    android:layout_column="2"
    android:layout_alignBottom="@+id/tile29"
    android:layout_toEndOf="@+id/tile29" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile35"
    android:layout_row="4"
    android:layout_column="3"
    android:layout_alignTop="@+id/tile32"
    android:layout_toEndOf="@+id/tile32" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile36"
    android:layout_row="4"
    android:layout_column="4"
    android:layout_alignBottom="@+id/tile33"
    android:layout_toEndOf="@+id/tile33" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile37"
    android:layout_row="4"
    android:layout_column="5"
    android:layout_alignTop="@+id/tile34"
    android:layout_toEndOf="@+id/tile34" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile38"
    android:layout_row="4"
    android:layout_column="6"
    android:layout_above="@+id/tile36"
    android:layout_toEndOf="@+id/tile35" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile39"
    android:layout_row="4"
    android:layout_column="7"
    android:layout_above="@+id/tile36"
    android:layout_toEndOf="@+id/tile38" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile40"
    android:layout_row="5"
    android:layout_column="0"
    android:layout_above="@+id/tile36"
    android:layout_toEndOf="@+id/tile39" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile41"
    android:layout_row="5"
    android:layout_column="1"
    android:layout_above="@+id/tile37"
    android:layout_toEndOf="@+id/tile36" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile42"
    android:layout_row="5"
    android:layout_column="2"
    android:layout_above="@+id/tile37"
    android:layout_toEndOf="@+id/tile41" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile43"
    android:layout_row="5"
    android:layout_column="3"
    android:layout_above="@+id/tile37"
    android:layout_toEndOf="@+id/tile42" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile44"
    android:layout_row="5"
    android:layout_column="4"
    android:layout_alignStart="@+id/tile41"
    android:layout_alignBottom="@+id/tile37" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile45"
    android:layout_row="5"
    android:layout_column="5"
    android:layout_toEndOf="@+id/tile44"
    android:layout_alignBottom="@+id/tile37" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile46"
    android:layout_row="5"
    android:layout_column="6"
    android:layout_above="@+id/gridLayout"
    android:layout_alignStart="@+id/gridLayout" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile47"
    android:layout_row="5"
    android:layout_column="7"
    android:layout_alignTop="@+id/tile46"
    android:layout_alignStart="@+id/tile28" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile47"
    android:layout_row="6"
    android:layout_column="0"
    android:layout_above="@+id/gridLayout"
    android:layout_alignStart="@+id/tile31" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile49"
    android:layout_row="6"
    android:layout_column="1"
    android:layout_above="@+id/gridLayout"
    android:layout_alignStart="@+id/tile32" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile50"
    android:layout_row="6"
    android:layout_column="2"
    android:layout_above="@+id/gridLayout"
    android:layout_alignStart="@+id/tile35" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile51"
    android:layout_row="6"
    android:layout_column="3"
    android:layout_above="@+id/tile50" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile52"
    android:layout_row="6"
    android:layout_column="4"
    android:layout_below="@+id/tile51"
    android:layout_toStartOf="@+id/tile39" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile53"
    android:layout_row="6"
    android:layout_column="5"
    android:layout_below="@+id/tile51" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile54"
    android:layout_row="6"
    android:layout_column="6"
    android:layout_above="@+id/tile46"
    android:layout_toStartOf="@+id/tile47" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile55"
    android:layout_row="6"
    android:layout_column="7"
    android:layout_above="@+id/gridLayout"
    android:layout_toEndOf="@+id/tile52" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile56"
    android:layout_row="7"
    android:layout_column="0"
    android:layout_alignTop="@+id/tile45"
    android:layout_toEndOf="@+id/tile45" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile57"
    android:layout_row="7"
    android:layout_column="1"
    android:layout_above="@+id/tile47"
    android:layout_alignStart="@+id/tile47" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile58"
    android:layout_row="7"
    android:layout_column="2"
    android:layout_above="@+id/tile49"
    android:layout_alignStart="@+id/tile49" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile59"
    android:layout_row="7"
    android:layout_column="3"
    android:layout_above="@+id/tile50"
    android:layout_alignStart="@+id/tile50" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile60"
    android:layout_row="7"
    android:layout_column="4"
    android:layout_alignBottom="@+id/tile59"
    android:layout_alignStart="@+id/tile52" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile61"
    android:layout_row="7"
    android:layout_column="5"
    android:layout_above="@+id/tile52"
    android:layout_toEndOf="@+id/tile52" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile62"
    android:layout_row="7"
    android:layout_column="6"
    android:layout_above="@+id/gridLayout"
    android:layout_toEndOf="@+id/tile55" />

<Button
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tile63"
    android:layout_row="7"
    android:layout_column="7"
    android:layout_above="@+id/tile55"
    android:layout_toEndOf="@+id/tile55" />

</GridLayout>

1 个答案:

答案 0 :(得分:0)

用户d3.jsGridLayout列中设置layout_columnWeight

layout_width="0dp"

如果您的API级别低于14,那么您可以使用<GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:id="@+id/gridLayout"> <Button style="?android:attr/buttonStyleSmall" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/tile0" android:layout_row="0" android:layout_column="0" android:layout_columnWeight="1" /> <Button style="?android:attr/buttonStyleSmall" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/tile1" android:layout_row="0" android:layout_column="1" android:layout_columnWeight="1" /> ...