Android多屏幕支持

时间:2015-04-30 00:51:28

标签: android android-screen-support

我需要一些支持多种屏幕尺寸的建议,

  1. 哪个会奏效
    • 使用
  2. util.c

    或 此

    values
    values-hdpi
    values-large
    values-ldpi
    values-mdpi
    values-small
    values-xhdpi
    values-xlarge
    

    我应该在res中创建什么值的文件夹?我想知道所有这些,如果我可以

    1. 我是否需要以编程方式声明或仅将@ dimens / something放在布局xml中?

      3.DO我需要制作更多的布局文件夹以支持多屏幕尺寸或只需一个布局文件夹,使用@dimens足以处理多屏幕尺寸?

2 个答案:

答案 0 :(得分:8)

首先,以下内容从Android 3.2(API 13)及以上版本折旧......

values
values-hdpi
values-large
values-ldpi
values-mdpi
values-small
values-xhdpi
values-xlarge

基本上,当您为运行低于Android 3.2(API 13)的设备开发时,您只需要使用这些。

最小宽度

 values-sw360dp
 values-sw600dp
 values-sw600dp-land
 values-sw600dp-v21
 values-sw720dp-land
 values-sw720dp

" sw"意味着最小的宽度。操作系统将选择适合您的活动窗口 的最小可用宽度的操作系统。因此,如果您的设备宽度为700dp,则会使用values-sw600dp中的资源用于纵向,values-sw600dp-land用于横向,因为600dp是"最小宽度"您已定义和720dp。例如,如果您想要在1024dp或更宽的屏幕上使用的drawable,那么您将创建一个名为values-sw1024dp的目录。命名方案如下:[resourcetype] -swdp-optionalFlag

注意:该可选标志告诉操作系统仅使用该特定实例的资源。例如,标志" -v21"表示如果操作系统的API级别为21或更高,它应该只使用这些资源。

可用的屏幕宽度

 values-w720dp-land
 values-w720dp

这些指定了应使用资源的最小可用宽度。

Android文档描述它比我更好......

  

这通常有助于确定是否使用多窗格布局,   因为即使在平板电脑设备上,你也经常不会想要同样的东西   用于纵向的多窗格布局,与横向一样。   因此,您可以使用它来指定所需的最小宽度   布局,而不是同时使用屏幕尺寸和方向   合格者。

Supporting Multiple Screens

问题2& 3

  

我是否需要以编程方式声明或只是将@ dimens / some放入其中   布局xml?

您只需将上述目录放在/ res目录中。

因此,例如,您的布局目录......您可以在/ res目录中输入类似的内容:

layout
layout-land
layout-v14
layout-land-v14
layout-sw600-land
layout-sw600dp-land

对于你的drawable,你可能会有类似的东西(对于3.2之前的支持):

drawable
drawable-hdpi
drawable-hdpi-v11
drawable-mdpi
drawable-ldpi

并为您的价值观:

values
values-v14
values-sw600dp
values-sw600dp-land
values-w820dp
values-w820dp-land

答案 1 :(得分:1)

两者都有效。

要支持多种屏幕尺寸,res/value中使用的最常见的是dimens.xml。 (文件名只是惯例)

<resources>
    <!-- Example customization of dimensions originally defined in res/values/dimens.xml
         (such as screen margins) for screens with more than 820dp of available width. This
         would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
    <dimen name="activity_horizontal_margin">64dp</dimen>
</resources>

在其他res/value-XXX中,activity_horizontal_margindimens.xml的值可能是符合您需要的其他值。