20

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

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

当我设计接口时,请始终牢记下图。在此处输入图像描述

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

在此处输入图像描述

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

小屏幕尺寸

当涉及到小屏幕尺寸时,它完美地引用了下定义的 UI,layout-small并且毫无问题地显示。

正常屏幕尺寸

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

所以我的布局在这个尺寸下看起来很棒,但三星 Galaxy 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 中所有屏幕尺寸的标准方法,将不胜感激,因为这太令人困惑了。谢谢。

4

6 回答 6

18

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

使用sdp 尺寸单位,您将在所有屏幕尺寸上拥有相同的用户体验,只需一个布局 xml。

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

文本视图尺寸请参考ssp尺寸单位(基于sp尺寸单位)

于 2015-03-29T08:38:29.750 回答
3

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

7英寸平板电脑
res\layout-sw600dp

10英寸平板电脑
res\layout-sw720dp

于 2013-06-27T14:12:00.223 回答
1

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

资源

确保遵守这些规则

于 2013-06-27T15:42:26.190 回答
1

对于多屏幕支持:

  1. 移动:创建不同的值文件夹,如下所述:

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

  1. 平板电脑:创建不同的布局文件夹,如下所述:

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

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

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

于 2015-08-14T05:44:34.697 回答
0

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

资源/布局-大/

res/layout-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

于 2015-11-30T14:15:39.903 回答
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" />

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

于 2016-06-24T04:42:55.177 回答