更大尺寸屏幕设备上的布局问题

时间:2014-01-11 21:18:54

标签: android android-layout android-xml dpi android-screen-support

我有2台设备。对于更大的屏幕尺寸,我的布局底部有一个白色间隙。我设计了Manisfest.xml,好像它是屏幕配置问题:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mapcard"
android:versionCode="1"
android:versionName="1.0"
 >

<supports-screens
        android:smallScreens="true"
            android:normalScreens="true"
            android:largeScreens= "true"
            android:anyDensity="true"
    />
...

这是我的布局,我遇到了问题。对于Galaxy S2工作得很好,但是当涉及到HTC Butterfly S时,布局更右边,白色间隙出现在底部:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/sview" >

<RelativeLayout
android:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="461dp"
android:background="@drawable/mainpagebck"
android:gravity="clip_horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >

<ImageView
    android:id="@+id/qrcodeview"
    android:layout_width="120dp"
    android:layout_height="105dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/border"
    android:adjustViewBounds="true"
    android:scaleType="fitCenter" >
</ImageView>
 <ImageView
    android:id="@+id/logoview"
    android:layout_width="120dp"
    android:layout_height="105dp"
    android:layout_alignLeft="@+id/txtName"
    android:layout_alignParentTop="true"
    android:src="@drawable/border"
    android:adjustViewBounds="true"
    android:scaleType="fitCenter" />

<TextView
    android:id="@+id/txtqrcode"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/qrcodeview"
    android:layout_alignLeft="@+id/qrcodeview"
    android:layout_marginBottom="41dp"
    android:layout_marginLeft="32dp"
    android:text="QR Code"
    android:fitsSystemWindows="true"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/txtlogo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/txtqrcode"
   android:layout_marginBottom="41dp"
    android:layout_marginLeft="23dp"
    android:layout_toRightOf="@+id/linearLayout1"
    android:text="Logo/Photo"
    android:fitsSystemWindows="true"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<ImageView
    android:id="@+id/location"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/qrcodeview"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/qrcodeview"
    android:layout_toRightOf="@+id/logoview"
    android:src="@drawable/location1" />



  <EditText
    android:id="@+id/txtName"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/logoview"
    android:ems="10"
    android:hint="Full Name"
    android:capitalize="words"
    android:textColorHint="#262d35" />

  <EditText
    android:id="@+id/txtCompany"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtName"
    android:ems="10"
    android:hint="Company"
    android:capitalize="characters"
    android:textColorHint="#262d35" />

  <EditText
    android:id="@+id/txtPhone"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtCompany"
    android:ems="10"
    android:hint="Phone (Landline/Fax)"
    android:inputType="phone"
    android:textColorHint="#262d35" />

  <EditText
    android:id="@+id/txtMobile"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtPhone"
    android:ems="10"
    android:hint="Mobile"
    android:inputType="phone"
    android:textColorHint="#262d35" />

 <EditText
    android:id="@+id/txtAddress"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtMobile"
    android:ems="10"
    android:hint="Address"       
    android:capitalize="words"    
    android:textColorHint="#262d35" /> 


<EditText
    android:id="@+id/txtEmail"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtAddress"
    android:ems="10"
    android:hint="E-mail"
    android:capitalize="none"
    android:inputType="textEmailAddress"
    android:textColorHint="#262d35" >


</EditText>

<EditText
    android:id="@+id/txtWebsite"
    android:layout_width="288dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/txtEmail"
    android:ems="10"
    android:hint="Website"
    android:capitalize="none"
    android:textColorHint="#262d35"
    android:inputType="textEmailAddress"
     />

<EditText
android:id="@+id/txtTitle"
android:layout_width="246dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/txtWebsite"
android:layout_alignParentRight="true"
android:layout_below="@+id/txtWebsite"
android:ems="10"
android:hint="Title"
android:capitalize="words"
android:textColorHint="#262d35" >


</EditText>

<LinearLayout
android:id="@+id/linearlayout2"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_below="@+id/txtTitle" >

<Button
    android:id="@+id/save"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="140dp"
    android:layout_height="wrap_content"
    android:text="Save" />

 <Button
        android:id="@+id/clear"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="148dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="Clear" />

</LinearLayout>
</RelativeLayout>

屏幕截图:

HTC and Galaxy S2

第一张图像上方的“保存并清除”按钮下方有白色间隙,上面的文字未正确对齐。我怎么解决这个问题?谢谢你的建议。

1 个答案:

答案 0 :(得分:0)

使用match_parent作为身高。基本上,你为相对布局指定了最大高度为461dp,我想不出程序的主要布局应该具有指定高度的情况,通常你想使用fill_parent。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/sview" >

<RelativeLayout
android:id="@+id/rl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/mainpagebck"
android:gravity="clip_horizontal"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >

此外,您在视图中不断使用像素高度,您可能不希望这样做。这将导致每个设备出现轻微的布局问题,并且没有人为每个屏幕布局构建布局(至少,我不知道......)