Android UIdevise:支持多个屏幕

我已阅读本教程支持多个屏幕几次和许多关于Design Android UIs to fit well with all android screen sizes stackoverflow问题, Design Android UIs to fit well with all android screen sizes

但是仍然在为所有屏幕尺寸提供最好和相同的用户体验而苦苦挣扎。

在devise接口时,请始终记住以下图表。 在这里输入图像说明

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

在这里输入图像说明

另外,在定义尺寸时,我在xml布局文件中使用了dpsp单位。

小屏幕尺寸

当涉及到小屏幕尺寸时,它完全可以参考在layout-small下定义的用户界面(UI),而且没有任何问题。

正常的屏幕尺寸

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

所以我的布局在这个尺寸上看起来很好,但是三星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中的所有屏幕尺寸,将不胜感激,因为这是如此混乱。 谢谢。

Solutions Collecting From Web of "Android UIdevise:支持多个屏幕"

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

使用sdp大小单位,您将在所有屏幕大小上具有相同的用户体验,只有一个布局xml。

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

对于文本视图大小,请参阅ssp大小单位 (基于sp大小单位)

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

7寸平板电脑
res\layout-sw600dp

10寸平板电脑
res\layout-sw720dp

如果指出这一点非常重要,那么有一个方便的文件夹命名工具,那就是链接。 防爆。 layout-w480dp-normal ,屏幕尺寸至less为480dp ,属于normal范畴。 注:我没有得到这样的详细要求的发展,但根据相关的来源,它应该工作得很好。

资源

确保遵守这些规则

对于多屏幕支持:

  1. 手机:创build下面提到的不同值的文件夹:

 values (For mdpi devices) values-hdpi (For hdpi devices) values-xhdpi (For xhdpi devices) values-xxhdpi (For xxhdpi devices) 

  1. 平板电脑:创build下面提到的不同的布局文件夹:

 layout-sw600dp (For 7″ to 9″ Screen) layout-sw720dp (For 10″ to above screen) 

对于图像资源:创build4个可绘制的文件夹:

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

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

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 UIdevise示例和教程: http : //www.viralandroid.com/2015/11/android-user-interface-ui-design-tutorial.html

广义密度。

 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" /> 

这对我来说支持包括Nexus 9,10在内的所有平板电脑以及具有不同分辨率和分辨率的所有设备