2016-04-08 23 views
1

我創建了一個非常簡單的應用程序,並將它下載到15個不同的設備中。對於他們中的一些佈局沒有調整大小的問題,出現這樣的:Android:爲每個設備自動調整大小

Layout that should be in all layouts

但是,當我在山城銀河新Plus和在平板電腦愛可視101銅安裝應用程序的項目佈局都不在我想要的位置。在平板電腦均達到背景不同顏色的看法,並在銀河新加是這樣的: Layout in the Galaxy Neo Plus

要自動調整大小,在活動XML,我用thse代碼:

android:layout_marginTop="125dp" 
android:layout_marginBottom="15dp" 
android:layout_marginRight="20dp" 
android:layout_marginLeft="20dp" 

到設置按鈕從上邊距/底/左/右

android:textSize="30dp" 

設置按鈕的尺寸文本

佈局代碼我s此:

<RelativeLayout 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/bg" 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Al meglio di:" 
    android:textSize="22dp" 
    android:id="@+id/almegliodi" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="220dp" 
    android:layout_centerHorizontal="true" 
    android:typeface="serif" 
    android:textStyle="bold|italic" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text=" UNO " 
    android:textStyle="bold" 
    android:textSize="35dp" 
    android:textColor="@android:color/white" 
    android:id="@+id/uno" 
    android:background="@android:drawable/dialog_holo_dark_frame" 
    android:onClick="uno" 
    android:layout_below="@+id/almegliodi" 
    android:layout_marginTop="30dp" 
    android:layout_centerHorizontal="true"/> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text=" TRE " 
    android:textStyle="bold" 
    android:textSize="35dp" 
    android:textColor="@android:color/white" 
    android:id="@+id/tre" 
    android:background="@android:drawable/dialog_holo_dark_frame" 
    android:onClick="tre" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/uno" 
    android:layout_marginTop="30dp"/> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text=" CINQUE " 
    android:textStyle="bold" 
    android:textSize="35dp" 
    android:textColor="@android:color/white" 
    android:id="@+id/cinque" 
    android:background="@android:drawable/dialog_holo_dark_frame" 
    android:onClick="cinque" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/tre" 
    android:layout_marginTop="30dp"/> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="ESCI" 
    android:textStyle="bold" 
    android:textSize="30dp" 
    android:id="@+id/esci" 
    android:background="@android:color/transparent" 
    android:layout_marginBottom="7dp" 
    android:layout_marginLeft="30dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentBottom="true" 
    android:onClick="esci" 
    /> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="INDIETRO" 
    android:textStyle="bold" 
    android:textSize="30dp" 
    android:textColor="@android:color/white" 
    android:id="@+id/indietro" 
    android:background="@android:color/transparent" 
    android:onClick="indietro" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentBottom="true" 
    android:layout_alignTop="@+id/esci" 
    android:layout_marginRight="30dp" 
    android:layout_marginBottom="7dp" 
    /> 
</RelativeLayout 

我搜索的谷歌,但我發現,使用「DP」是自動調整保證金和文本中的所有設備的最佳途徑。

我的錯誤是什麼?我需要做什麼來解決兼容性問題?

謝謝

+0

請添加您的佈局。一般而言,您應該使用帶重量的線性佈局來修復該問題 – rekire

+0

可能地,您沒有使用正確的密度桶。平板電腦的不同於手機。 –

+0

@rekire我添加了我的佈局,但只有通過鏈接,因爲我沒有足夠的聲譽,直接發佈圖像 – 24terminator96

回答

0

下面是一個例子你的佈局可能看起來怎麼樣:

Example

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#005" 
    android:orientation="vertical"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="150dp" 
     android:layout_gravity="center_horizontal" 
     android:src="@android:drawable/btn_star_big_on"/> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_gravity="center_horizontal" 
     android:layout_margin="24dp" 
     android:layout_weight="1" 
     android:background="#cfff" 
     android:gravity="center" 
     android:orientation="vertical"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button"/> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button"/> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button"/> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button"/> 

     <android.support.v4.widget.Space 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button"/> 
    </LinearLayout> 
</LinearLayout> 

您要爲每個按鈕,使您的應用程序翻譯應該引起使用@string/的,但基本的佈局應該給你正確的想法如何使一個正確縮放的佈局。

基本上我使用一些線性佈局,只是說如何安排視圖(水平或垂直)。然後我告訴包含三個主要按鈕的視圖,其高度應爲零(僅用於性能),佈局權重爲1的最重要部分(android:layout_weight="1")告訴系統將開放空間拆分爲所有視圖一個重量屬性。所以這個會盡可能地填滿你的顯示器。其他視圖仍然會按照我的要求呈現wrap_content

+0

爲什麼你在第三個佈局中使用android.support.v4.widget.Space來加權?第二,你是否把重量放在佈局的一般禮儀上? sace小部件的用途是什麼? – 24terminator96

+0

我忘了提及,這基本上是一個不會顯示的佔位符,但它需要有空間讓您在右側和左側有一個視圖。這是獲得這一結果的最快途徑。 – rekire

+0

,如果我想從第二個佈局和imageview增加邊距?我可以使用marginTop?或者線性佈局還有其他功能? – 24terminator96