Android UI设计:支持多个屏幕

时间:2013-06-27 13:53:58

标签: android android-layout

我已多次阅读本教程SUPPORTING MULTIPLE SCREENS以及有关Design Android UIs to fit well with all android screen sizes的许多stackoverflow问题。

但仍然努力为所有屏幕尺寸提供最佳和相同的用户体验。

当我设计接口时,始终牢记以下图表。enter image description here

目前在我的应用中,它使用res文件夹下的以下文件夹结构。

enter image description here

在定义尺寸时,我还在xml布局文件中使用了 dp sp 单位。

小屏幕尺寸

对于小屏幕尺寸,它完全引用layout-small下定义的用户界面并显示没有任何问题。

普通屏幕尺寸

当我为普通屏幕尺寸(layout folder)设计布局时,我使用3.5 inches android设备和3.7 inches模拟器来测试UI在正常屏幕尺寸下的外观。

所以我的布局在这个尺寸上看起来很棒,但三星Gallaxy S3(4.8 inches)和S4(5.0 inches)的屏幕略大,它们仍然指的是正常的屏幕尺寸布局。因此,在那些较大的屏幕中,从底部留下相当大的空间而不使用,并且UI看起来不太好。

同样在清单文件中,我定义了以下内容,

<uses-sdk
    android:minSdkVersion="4"
    android:targetSdkVersion="17" />

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

我对图像密度(drawable-hdpi/drawable-xhdpi/drawable-mdpi/drawable-ldpi

没有任何问题

(1)。想知道我错过了什么或做错了,特别是在更大的屏幕(4.8英寸)中,这是指正常的布局。

(2)。此外,如果有人能够解释最佳做法以及在Res文件夹下定义文件夹结构的标准方式,以便与android中的所有屏幕尺寸完美匹配,那么感激,因为这太令人困惑了。谢谢。

6 个答案:

答案 0 :(得分:16)

您可以使用相对于屏幕尺寸的the sdp size unit,而不是使用dp尺寸单位。

使用the sdp size unit,您将在所有屏幕尺寸上获得相同的用户体验,只有一个xml布局。

小心使用!例如,在大多数情况下,您仍然需要为平板电脑设计不同的布局。

对于文字视图尺寸,请参阅the ssp size unit(基于sp尺寸单位)

答案 1 :(得分:3)

您可以使用以下资源文件夹为屏幕较大的设备创建布局:

7英寸的片剂
res\layout-sw600dp

10英寸的片剂
res\layout-sw720dp

答案 2 :(得分:1)

如果指定到那个极端是非常重要的,那么有一个方便的文件夹命名工具,那就是链接。防爆。 layout-w480dp-normal这是屏幕尺寸,宽度至少为480dp,属于normal类别。注意:我没有得到开发这些详细要求的需要,但根据链接的来源,它应该可以正常工作。

Source

Make sure to follow these rules

答案 3 :(得分:1)

对于多屏幕支持:

  1. 移动:创建不同的值文件夹,如下所示:
  2. values                     (For mdpi devices)
    values-hdpi                (For hdpi devices)
    values-xhdpi               (For xhdpi devices)
    values-xxhdpi              (For xxhdpi devices)
    

    1. 平板电脑:创建不同的布局文件夹,如下所示:
    2. layout-sw600dp             (For 7″ to 9″ Screen)
      layout-sw720dp             (For 10″ to above screen)
      

      对于图片资源:创建4个可绘制文件夹:

      drawable-mdpi
      drawable-hdpi
      drawable-xhdpi
      drawable-xxhdpi
      

答案 4 :(得分:0)

为不同的屏幕创建不同的布局。

RES /布局大/

RES /布局sw600dp /

ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi

查找android UI设计示例和教程:http://www.viralandroid.com/2015/11/android-user-interface-ui-design-tutorial.html

答案 5 :(得分:0)

广义密度。

A set of six generalized densities:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi

只需为不同的图像定义文件夹,如:

drawable-large-xhdpi: copy (drawable-xxhdpi images)
drawable-xlarge-xhdpi: copy (drawable-xxxhdpi images)
drawable-xxhdpi: 1080x1920 slicing
drawable-xxxhdpi : 1440x25601 slicing

在清单中添加支持多种屏幕尺寸支持。

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

This works for me to support all tablets including Nexus 9,10, and all devices with different resolution and dencity