игра крестики-нолики в изменении размера экрана Android

Я сделал игру крестики-нолики на Android, которая отлично работает на 5-дюймовом экране, но, на мой взгляд, 4,5-дюймовый дисплей выглядит так in 4,5-дюймовая пчела чести

на моем 5 дюймовом nexus avd все нормально смотрится со всеми фишками внутри линии

вот код xml для макета

   <GridLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:rowCount="3"
    android:columnCount="3"
    android:id="@+id/grid"
    android:background="@drawable/board">

    <ImageView
        android:layout_width="87dp"
        android:layout_height="87dp"
        android:id="@+id/imageView"
        android:layout_row="0"
        android:layout_column="0"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="20dp"
        android:onClick="drop"
        android:tag="0"
        android:clickable="false"
        android:maxHeight="87dp"
        android:maxWidth="87dp"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"/>

    <ImageView
        android:layout_width="87dp"
        android:layout_height="87dp"
        android:id="@+id/imageView3"
        android:layout_row="0"
        android:layout_column="1"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="35dp"
        android:onClick="drop"
        android:tag="1"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"/>

    <ImageView
        android:layout_width="87dp"
        android:layout_height="87dp"
        android:id="@+id/imageView2"
        android:layout_row="0"
        android:layout_column="2"
        android:onClick="drop"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:layout_marginRight="20dp"
        android:tag="2"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"/>

    <ImageView
        android:layout_width="87dp"
        android:layout_height="87dp"
        android:id="@+id/imageView6"
        android:layout_row="1"
        android:layout_column="0"
        android:onClick="drop"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="80dp"
        android:layout_marginBottom="25dp"
        android:tag="3"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"/>

    <ImageView
        android:layout_width="87dp"
        android:layout_height="87dp"
        android:id="@+id/imageView5"
        android:layout_row="1"
        android:layout_column="1"
        android:onClick="drop"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="80dp"
        android:layout_marginRight="10dp"
        android:tag="4"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"/>

    <ImageView
        android:layout_width="87dp"
        android:layout_height="87dp"
        android:id="@+id/imageView8"
        android:layout_row="1"
        android:layout_column="2"
        android:onClick="drop"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="80dp"
        android:tag="5"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"/>

    <ImageView
        android:layout_width="87dp"
        android:layout_height="87dp"
        android:id="@+id/imageView4"
        android:layout_row="2"
        android:layout_column="0"
        android:onClick="drop"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="50dp"
        android:tag="6"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"/>

    <ImageView
        android:layout_width="87dp"
        android:layout_height="87dp"
        android:id="@+id/imageView7"
        android:layout_row="2"
        android:layout_column="1"
        android:onClick="drop"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="50dp"
        android:tag="7"
        android:adjustViewBounds="true"
        android:scaleType="centerInside" />

    <ImageView
        android:layout_width="87dp"
        android:layout_height="87dp"
        android:id="@+id/imageView9"
        android:layout_row="2"
        android:layout_column="2"
        android:onClick="drop"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="50dp"
        android:tag="8"
        android:adjustViewBounds="true"
        android:scaleType="centerInside"/>
</GridLayout>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/bck"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:weightSum="1"
     android:alpha="1"
    android:id="@+id/playagainlayout">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/winnermsg"
        android:layout_gravity="center_horizontal"
        android:textSize="40sp"
        android:layout_weight="0.44" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Play Again"
        android:id="@+id/play_again"
        android:layout_gravity="center_horizontal"
        android:layout_weight="0.05"
        android:onClick="playagain" />
</LinearLayout>


person sanjay bisht    schedule 29.08.2016    source источник


Ответы (1)


Вы должны использовать layout_weight. Потому что вес имеет дело с соотношением и поддерживает все измерения. В противном случае настройка ширины и высоты не будет работать на всех устройствах.

здесь приведен пример layout_weight.

person Halumz - Mashuk Sadman    schedule 29.08.2016