Android 如何为同一类别中的布局定义两种不同的布局,但英寸略有不同?
我正在eclipse的图形布局中测试我的布局。可在图形布局中查看5.4英寸FWVGA(480x854,mdpi)和5.1英寸WVGA(480x800,mdpi)屏幕。如果我是正确的,它们都属于大屏幕类别,因此我将布局xml放入布局大文件夹中。我已经将我的图像放入可绘制的大mdpi文件夹中。但在5.1in WVGA中,图像按钮稍微关闭,如下面的屏幕截图所示。第一个是5.1英寸,第二个屏幕截图是5.4英寸,是正确的。 我的第二个问题与上面类似,是这样的。我已经为Nexus7做了新的布局,并将其放入layout-sw600dp文件夹,将图像放入可绘制的tvdpi。然后我在7英寸平板电脑(1024x600,mdpi)中查看了此布局。图像按钮比它应该看起来的稍微关闭。与第一个问题相同 我知道原因可能是因为5.1in和5.4in并不完全相同,即使它们属于同一类别,我应该为它们提供两种不同的布局。那我该怎么做呢?我怎么能有两种不同的布局?或者有更好的解决方案,因为我不想为市场上存在的每个屏幕大小创建布局。 以下是xml文件:Android 如何为同一类别中的布局定义两种不同的布局,但英寸略有不同?,android,layout,android-screen-support,Android,Layout,Android Screen Support,我正在eclipse的图形布局中测试我的布局。可在图形布局中查看5.4英寸FWVGA(480x854,mdpi)和5.1英寸WVGA(480x800,mdpi)屏幕。如果我是正确的,它们都属于大屏幕类别,因此我将布局xml放入布局大文件夹中。我已经将我的图像放入可绘制的大mdpi文件夹中。但在5.1in WVGA中,图像按钮稍微关闭,如下面的屏幕截图所示。第一个是5.1英寸,第二个屏幕截图是5.4英寸,是正确的。 我的第二个问题与上面类似,是这样的。我已经为Nexus7做了新的布局,并将其放
<?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>
在第三步中,设置所有特定于您的设备,如屏幕、语言等。你做到了谢谢,我不知道你能做到。然而,如果我要为每一个屏幕尺寸都这样做,那就需要做很多工作。正如你所知,有几十种屏幕类型。我需要有这么多的版面吗。在我的布局文件夹中,我有27个XML。如果我对每个屏幕都这样做的话,我会有100+Xml。你认为还有其他方法吗?不是每个屏幕大小都需要。android用户界面开发不会像那样进行。首先在每个屏幕上测试,如果你发现了一些错误,那么就去做。否则,只需为一种类型的屏幕设置一些标准ui设计。