2012-07-06 113 views
0

我想创建一个在所有设备上显示的布局,就像它在我的手机上一样。我试图让它适用于平板电脑,但它看起来很糟糕。 这是它应该是什么样子: enter image description here相对布局缩放?

但在这里是如何出现在这片模拟器: enter image description here

我能做些什么,使之出现在所有屏幕尺寸喜欢它是我的手机上?我目前正在使用RelativeLayout。 这里是我的代码:

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/RelativeLayout02" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 

<ImageView 
    android:id="@+id/terranlogo1" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:layout_centerHorizontal="true" 
    android:src="@drawable/terranlogo" /> 

<ImageView 
    android:id="@+id/protosslogo1" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:layout_alignParentRight="true" 
    android:src="@drawable/protosslogo" /> 

<ImageView 
    android:id="@+id/zerglogo1" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:layout_alignParentLeft="true" 
    android:src="@drawable/zerglogo" /> 

<CheckBox 
    android:id="@+id/ck_t1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/terranlogo1" 
    android:layout_centerHorizontal="true" /> 

<CheckBox 
    android:id="@+id/ck_p1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@id/protosslogo1" 
    android:layout_below="@id/protosslogo1" 
    android:layout_marginLeft="25dp" /> 

<CheckBox 
    android:id="@+id/ck_z1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@id/zerglogo1" 
    android:layout_below="@id/zerglogo1" 
    android:layout_marginLeft="25dp" /> 

<ImageView 
    android:id="@+id/terranlogo2" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:layout_below="@id/ck_t1" 
    android:layout_centerHorizontal="true" 
    android:src="@drawable/terranlogo" /> 

<ImageView 
    android:id="@+id/protosslogo2" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:layout_alignParentRight="true" 
    android:layout_below="@id/ck_p1" 
    android:src="@drawable/protosslogo" /> 

<ImageView 
    android:id="@+id/zerglogo2" 
    android:layout_width="100dp" 
    android:layout_height="100dp" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@id/ck_z1" 
    android:src="@drawable/zerglogo" /> 

<CheckBox 
    android:id="@+id/ck_t2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/terranlogo2" 
    android:layout_centerHorizontal="true" /> 

<CheckBox 
    android:id="@+id/ck_p2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@id/protosslogo1" 
    android:layout_below="@id/protosslogo2" 
    android:layout_marginLeft="25dp" /> 

<CheckBox 
    android:id="@+id/ck_z2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@id/zerglogo1" 
    android:layout_below="@id/zerglogo2" 
    android:layout_marginLeft="25dp" /> 

<TextView 
    android:id="@+id/textView4" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/ck_t2" 
    android:layout_marginRight="18dp" 
    android:layout_marginTop="17dp" 
    android:gravity="center_vertical|center_horizontal" 
    android:text="Choose your opponets race(s) and your race(s)" 
    android:textSize="30dp" /> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:text="Game Length" 
    android:textSize="15dp" /> 

<Spinner 
    android:id="@+id/s_answertime" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView1" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@id/textView4" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/terranlogo2" 
    android:layout_alignParentBottom="true" 
    android:gravity="center_horizontal" 
    android:text="Mistakes Allowed" 
    android:textSize="15dp" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:text="Answer Time" 
    android:textSize="15dp" /> 





<Spinner 
    android:id="@+id/s_mistakenumber" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/s_answertime" 
    android:layout_alignTop="@+id/s_answertime" 
    android:layout_toLeftOf="@+id/s_gametime" 
    android:layout_toRightOf="@+id/s_answertime" /> 



<Spinner 
    android:id="@+id/s_gametime" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView3" 
    android:layout_alignLeft="@+id/protosslogo2" 
    android:layout_alignTop="@+id/s_mistakenumber" /> 

</RelativeLayout> 

所有帮助表示赞赏,Lijap。

+0

您应该使用真实设备来测试您的应用程序,但实际上这很简单,您应该将其与LinearLayout分开并使用layout_weight – IamStalker 2012-07-06 18:12:00

+0

我无法使用LinearLayout以我想要的方式查看它。我一遍又一遍地尝试,我想我没有做对,但我无法弄清楚。 – Lijap 2012-07-06 18:26:28

回答

1

因为您设置了layout_above和layout_below,因此它们会拉伸以适应这两个条件。删除其中一个(可能是layout_above)并为它们设置一个合理的固定高度(75dp?)。

此外,您的左/右大多数图标/复选框可能会更好,边缘良好,margin_left/right = 50dp,以防止它们一直延伸到屏幕边缘。