Android 支持不同的屏幕大小

Android 支持不同的屏幕大小,android,Android,我有一个可以在不同类型的android设备上运行的应用程序项目: -小型设备:例如三星ace -普通设备:三星galaxi s3 -第10页“ 我的布局很复杂,使用match_parent和“dp”是不够的。我读过:但我并不完全理解 我是否需要在文件夹中创建更多的XML,比如说,res/layout-sw720dp/main_activity.XML我是否需要使用不同的限定符?它到底是如何工作的?对于不同的屏幕大小,以下是应用程序中的资源目录列表,该应用程序为不同的屏幕大小提供不同的布局设计 r

我有一个可以在不同类型的android设备上运行的应用程序项目: -小型设备:例如三星ace -普通设备:三星galaxi s3 -第10页“

我的布局很复杂,使用match_parent和“dp”是不够的。我读过:但我并不完全理解


我是否需要在文件夹中创建更多的XML,比如说,
res/layout-sw720dp/main_activity.XML
我是否需要使用不同的限定符?它到底是如何工作的?

对于不同的屏幕大小,以下是应用程序中的资源目录列表,该应用程序为不同的屏幕大小提供不同的布局设计

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
清单中的以下代码支持所有DPI

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

请将此限定符用于屏幕大小兼容的Android项目。
资源屏幕大小

布局小4英寸如果你想为不同的设备创建一个应用程序,那么你必须使用sdk中定义的android不同文件夹

例如

drawable-ldpi - to place the images for the low screen density devices(240*320)
drawable-mdpi - to place the images for the middle screen density devices(320*480)
drawable-hdpi - to place the images for the high screen density devices(480*800)
drawable-xhdpi - to place the images for the extra high screen density devices (above 480*800)
如果要为平板电脑创建应用程序 drawble-sw720dp-用于放置平板电脑设备的图像(7英寸)

drawable用于放置图像。您必须为不同的drawable文件夹创建布局

layout-ldpi - to place the layout for the low screen density devices(240*320)
layout-mdpi - to place the layout for the middle screen density devices(320*480)
layout-hdpi - to place the layout for the high screen density devices(480*800)
layout-xhdpi - to place the layout for the extra high screen density devices (above 480*800)
android会根据设备密度自动从应用程序中获取图像和布局。但为此,您必须定义

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


因此,为多屏幕分辨率设备开发应用程序。

要开发支持每种密度和分辨率的应用程序,我们应记住以下几点:

(1) 将不同大小的图像(同名)按以下比例放入4个不同文件夹:

ldpi:mdpi:hdpi:xhdpi=3:4:6:8

(2) 这些分辨率常用的尺寸为:

ldpi=36*36像素mdpi=48*48像素hdpi=72*72像素xhdpi=96*96像素

但您也可以使用所需的图像大小(也可以尝试按照不同大小的比例)。在所有这些图像中,将自动拾取适合设备密度的图像

(3) 除此之外,您还可以通过编程方式获取设备的密度,并相应地设置布局,如下所示:

      DisplayMetrics displayMetrics = new DisplayMetrics();
      getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
      switch(displayMetrics.densityDpi){ 
      case DisplayMetrics.DENSITY_LOW: 
        // layout for small sized devices.
        break; 
      case DisplayMetrics.DENSITY_MEDIUM: 
        // layout for medium-sized devices.
        break; 
      case DisplayMetrics.DENSITY_HIGH: 
        // layout for big-sized devices.
        break; 
      }  

请看这里。[支持多屏幕大小][1]。这对我也很有帮助。[1]:我想为不同的手机和表格投影我的应用程序。为此,您必须为drawble-sw720dp创建文件夹,用于图像,为layout-sw720dp创建文件夹。
      DisplayMetrics displayMetrics = new DisplayMetrics();
      getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
      switch(displayMetrics.densityDpi){ 
      case DisplayMetrics.DENSITY_LOW: 
        // layout for small sized devices.
        break; 
      case DisplayMetrics.DENSITY_MEDIUM: 
        // layout for medium-sized devices.
        break; 
      case DisplayMetrics.DENSITY_HIGH: 
        // layout for big-sized devices.
        break; 
      }