2017-01-18 23 views
-1

My GridLayout выглядит следующим образом:GridLayout слишком большой в Android

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> 

вы знаете, как исправить это?

ответ

0

Имейте в виду, что отношение dp относительно отношения пикселей к экрану и автоматически адаптируется андроидом к текущему дисплею.

Помните, что вы можете указать разные значения для размерной переменной на основе размера экрана, плотности экрана и ориентации экрана.

Что вы пытаетесь сделать, это установить размер относительно колеса, который не является элементом, так что вы хотите установить ширину сетки кнопок? Таким образом вы не можете достичь своей цели.

Для меня вы должны разделить свой фон на 2 изображения: первый с колесами, а второй с остальной частью фона. Затем вы можете использовать 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> 

Теперь я не могу попробовать его, дайте мне знать, если он работает

+0

я думаю, использование андроида: layout_width = «wrap_content» вместо андроида: layout_width = «Match_parent» в GridLayout. @firegloves –

+0

нет, потому что соединение match_parent и toRightOf и alignParentRight должно привести к использованию всего доступного пространства справа от колеса – firegloves

+0

ohhh..yaaa вы использовали toRightOf. Я забыл об этом. –