如何为同一类别中的布局定义两种不同的布局,但是英寸略有不同?

时间:2013-12-29 12:24:34

标签: android layout android-screen-support

我在eclipse的图形布局中测试我的布局。在图形布局中可以看到5.4英寸FWVGA(480x854,mdpi)和5.1英寸WVGA(480x800,mdpi)屏幕。如果我是正确的他们都属于大屏幕类别,因此我将布局xml放入layout-large文件夹。我将我的图像放入drawable-large-mdpi文件夹中。但是在5.1英寸WVGA中图像按钮稍微偏离,如下面的屏幕截图所示。首先是5.1in,第二个截图是5.4''和正确的截图。 5.1in

5.4in

我的第二个问题类似于上面的问题。我已经为Nexus 7做了新的布局并将其放入layout-sw600dp文件夹,并将图像添加到drawable-tvdpi。然后我在7in平板电脑(1024x600,mdpi)中查看了这个布局。并且图像按钮略微偏离它应该看起来。与第一个问题中的方式相同。

我明白原因可能是因为5.1in和5.4in并不完全相同,即使它们属于同一类别,我应该有2种不同的布局。那我该怎么办呢?我怎样才能有两种不同的布局?或者是否有更好的解决方案,因为我不想为市场上存在的每种屏幕尺寸创建布局。 这是xml文件:

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

    <RelativeLayout android:id="@+id/frames_layout"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_marginLeft="73dp" android:layout_marginTop="57dp">

        <ImageView android:id="@+id/fire_frame"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
            android:background="@drawable/small_fire_icon" />

        <ImageView android:id="@+id/water_frame"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_alignTop="@+id/fire_frame" android:layout_marginLeft="75dp"
            android:layout_toRightOf="@+id/fire_frame" android:background="@drawable/small_water_icon" />

        <ImageView android:id="@+id/earth_frame"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_below="@+id/fire_frame" android:layout_marginTop="71dp"
            android:layout_toLeftOf="@+id/water_frame" android:background="@drawable/small_earth_icon" />

        <ImageView android:id="@+id/wind_frame"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/water_frame" android:layout_alignTop="@+id/earth_frame"
            android:background ="@drawable/small_wind_icon" />
    </RelativeLayout>

        <ImageView android:id="@+id/zoomed_image"
            android:layout_width="wrap_content" android:layout_height="wrap_content" />

    <Button android:id="@+id/frames" android:layout_width="210dp"
        android:layout_height="220dp" android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" android:layout_marginLeft="55dp"
        android:layout_marginTop="30dp" android:onClick="zoomFrames" 
        android:background="@android:color/transparent"/>

    <Button android:id="@+id/blue" android:layout_width="115dp"
        android:layout_height="70dp" android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true" android:layout_marginLeft="220dp"
        android:onClick="zoomImage" 
        android:background="@android:color/transparent"/>

    <Button android:id="@+id/white" android:layout_width="85dp"
        android:layout_height="50dp" android:layout_alignParentRight="true"
        android:layout_alignParentTop="true" android:layout_marginRight="420dp"
        android:layout_marginTop="420dp" android:onClick="zoomImage"
        android:visibility="invisible"
        android:background="@android:color/transparent"/> 
        <ImageView
        android:id="@+id/fireplace"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="311dp"
        android:layout_marginLeft="67dp"
        android:background="@drawable/fire"
     />
            <ImageButton
        android:id="@+id/water_room"
          android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="310dp"
        android:layout_marginLeft="90dp"
        android:background="@drawable/view_water_room"
        android:onClick="finishFireRoom"
                android:visibility="gone"
        />
        <ImageView android:id="@+id/frames_zoomed_image"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:background="@drawable/frames_zoomed" android:onClick="hideZoomedFrames"
        android:visibility="gone"/>

    <RelativeLayout android:id="@+id/frameZoomedLayout"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_marginTop="113dp" android:layout_marginLeft="145dp"
        android:visibility="gone"
        >

        <ImageButton android:id="@+id/fire_icon"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:background="@drawable/fire_icon" android:onClick="changeIcon" />
        <ImageButton android:id="@+id/water_icon"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/fire_icon" android:layout_toRightOf="@+id/fire_icon"
            android:background="@drawable/water_icon" android:layout_marginLeft="147dp" android:onClick="changeIcon"/>
        <ImageButton android:id="@+id/earth_icon"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_below="@+id/fire_icon" android:layout_marginTop="140dp"
            android:layout_toLeftOf="@+id/water_icon" android:background="@drawable/earth_icon" android:onClick="changeIcon"/>

        <ImageButton android:id="@+id/wind_icon"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/water_icon" android:layout_alignTop="@+id/earth_icon"
            android:background="@drawable/wind_icon" android:onClick="changeIcon"/>
    </RelativeLayout>



</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

first step

second step

third step在第3步中设置所有设备,如屏幕,语言等。和你完成的