2016-01-22 2 views
0

Я тестировал свою программу на разных устройствах, но макет всегда различен. это XML для макетаандроид сетка макет размер

<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" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity"> 

<TextView 
    android:id="@+id/counterView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:gravity="center" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textSize="50dp" /> 

<EditText 
    android:id="@+id/passwordField" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/counterView" 
    android:layout_marginTop="30dp" 
    android:cursorVisible="false" 
    android:editable="false" 
    android:ems="10" 
    android:gravity="center" 
    android:inputType="textPassword" 
    android:maxLength="8" 
    android:textSize="50dp" /> 


<GridLayout 
    android:id="@+id/numberPad" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@id/passwordField" 
    android:columnCount="3" 
    android:horizontalSpacing="0dp" 
    android:rowCount="6" 
    android:stretchMode="columnWidth" 
    android:verticalSpacing="0dp"> 


    <Button 
     android:id="@+id/btnOne" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="0" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_row="0" 
     android:onClick="addInput" 
     android:text="@string/one" /> 

    <Button 
     android:id="@+id/btnTwo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="1" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_row="0" 
     android:onClick="addInput" 
     android:text="@string/two" /> 

    <Button 
     android:id="@+id/btnThree" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="2" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:layout_row="0" 
     android:onClick="addInput" 
     android:text="@string/three" /> 

    <Button 
     android:id="@+id/btnFour" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:onClick="addInput" 
     android:text="@string/four" /> 

    <Button 
     android:id="@+id/btnFive" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:onClick="addInput" 
     android:text="@string/five" /> 

    <Button 
     android:id="@+id/btnSix" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:onClick="addInput" 
     android:text="@string/six" /> 

    <Button 
     android:id="@+id/btnSeven" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:onClick="addInput" 
     android:text="@string/seven" /> 

    <Button 
     android:id="@+id/btnEight" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:onClick="addInput" 
     android:text="@string/eight" /> 

    <Button 
     android:id="@+id/btnNine" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_columnWeight="1" 
     android:layout_gravity="fill_horizontal" 
     android:onClick="addInput" 

     android:text="@string/nine" /> 

    <Button 
     android:id="@+id/btnZero" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_columnSpan="3" 
     android:layout_columnWeight="3" 
     android:layout_gravity="fill_horizontal" 
     android:onClick="addInput" 
     android:text="@string/zero" /> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="0" 
     android:layout_columnSpan="3" 
     android:layout_columnWeight="3" 
     android:layout_gravity="fill_horizontal" 
     android:layout_row="4" 
     android:gravity="center" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <Button 
     android:id="@+id/plantBtn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="0" 
     android:layout_columnSpan="3" 
     android:layout_columnWeight="3" 
     android:layout_gravity="fill" 
     android:layout_row="5" 
     android:onClick="plantBomb" /> 
</GridLayout> 

on my phone

other phones

3-й столбец, кажется, имеющие различную ширину, как я могу решить эту проблему? Некоторые устройства используют android 4.x и выше.

EDIT попробовал его на более крупные устройства, а выход, как это enter image description here

+0

Вы пытались установить ширину своей кнопки на 'match_parent'? –

+0

он не работает, первая кнопка просто заполнит ширину, а другая кнопка будет скрыта. –

+0

http://developer.android.com/intl/ru/training/basics/supporting-devices/screens.html –

ответ

0

вы можете использовать из папки макета

, например:

res/layout/my_layout.xml    // 470dp x 320dp //layout for normal screen size ("default") 
res/layout-small/my_layout.xml  // 426dp x 320dp //layout for small screen size 
res/layout-large/my_layout.xml  //640dp x 480dp // layout for large screen size 
res/layout-xlarge/my_layout.xml  // 960dp x 720dp // layout for extra large screen size 
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation 
+0

это можно дать мне немного информации о том, как это работает? это мое самое первое приложение android –

0

Ok

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

Рассмотрим следующее изображение:

enter image description here

+0

- это размер устройства - это настоящая проблема? потому что я пытался создать виртуальное устройство с разным размером экрана, и он отлично работает –

+0

Да, но он также может использовать другие способы, но я думаю, что это правильный путь. –

+0

все, что мне нужно сделать, это создать папку и скопировать и вставить в нее xml? нет ничего, что мне нужно добавить или изменить конкретно? –

0

Атрибут андроида: layout_columnWeight добавляется уровень API 21, попробуйте использовать android.support.v7.widget.GridLayout с приложением: layout_columnWeight вместо этого, если ваше приложение было для поддержки Android 4.x.

Смежные вопросы