2016-01-22 184 views
0

我一直在不同的設備上測試我的程序,但佈局總是不一樣。這是對佈局android網格佈局大小

<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列似乎具有不同寬度xml的,如何解決這個問題? 一些設備正在使用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

確定

您可以手動創建所有尺寸的文件夾在每組中。

請看下面的圖片:

enter image description here

+0

是設備的大小是實際的問題?因爲我試圖用不同的屏幕尺寸製作虛擬設備,並且它工作得很好 –

+0

是的,但也可以使用其他方式,但我認爲這是正確的方式。 –

+0

我需要做的就是創建文件夾並將其複製並粘貼到它的權利? theres沒有我需要添加或更改具體? –

0

屬性的android:layout_columnWeight在API級別21加時,儘量使用android.support.v7.widget.GridLayout與應用:layout_columnWeight,而是如果你的應用程序是渴望支持Android 4.x.