Android允许我们在drawable文件夹中定义hdpi/mdpi/ldpi,以考虑不同大小的屏幕/设备。 我想知道是否可以将同样的支持应用于Values文件夹(甚至是布局文件夹)?原因是,我通常会定义一个“sizes.xml”文件,其中包含我应用于边距和填充的标准dp尺寸。对于文本的sp尺寸,我也做同样的事情。我想根据手机dpi调整这些值。
是的,你可以。就像这样:
res/values/dimens.xml(default)
res/values-ldpi/dimens.xml (240x320 and nearer resolution)
res/values-mdpi/dimens.xml (320x480 and nearer resolution)
res/values-hdpi/dimens.xml (480x800, 540x960 and nearer resolution)
res/values-xhdpi/dimens.xml (720x1280 - Samsung S3, Micromax Canvas HD, etc)
res/values-xxhdpi/dimens.xml (1080x1920 - Samsung S4, HTC one, etc)
res/values-large/dimens.xml (480x800)
res/values-large-mdpi/dimens.xml (600x1024)
res/values-sw600dp/dimens.xml (600x1024)
res/values-sw720dp/dimens.xml (800x1280)
res/values-xlarge-xhdpi/dimens.xml (2560x1600 - Nexus 10")
res/values-large-xhdpi/dimens.xml (1200x1920 - Nexus 7"(latest))
是的,我认为在 res/
文件夹中的任何内容都可以使用“Configuration Qualifiers”,例如,您可以有一个 values-sw600dp-mdpi-land/
文件夹。
请参阅“使用配置限定符”: http://developer.android.com/guide/practices/screens_support.html#qualifiers
我最初是通过查看 Google 的 IOSched 应用程序示例代码来注意到这一点的,看看 res
文件夹:
https://github.com/google/iosched/tree/master/android/src/main/res
您会发现它们有“values-sw600dp-land”、“values-w400dp”和“values-v17”文件夹,只是其中之一的几个示例。
由于值文件夹更适合根据设备分辨率设置不同的边距和字体大小,因此一些hdpi设备使用了values-xhdpi中的值,因此使用values-normal-xhdpi而不是values-normal-hdpi更为合适。
通过这种方式,在值文件夹中设置不同的dps和大小,可以轻松支持手机和平板电脑,从而省略了不同布局文件夹的需求。
是的,您可以根据标准修饰符定义要使用的文件。例如,在我的一个应用程序中,我已经为各种大小和方向定义了styles.xml和strings.xml文件,并且它们都按预期工作,如values-large-hdpi和values-large-land-hdpi等。