支持不同的屏幕尺寸

时间:2012-09-19 09:24:10

标签: android

我有一个可以在不同类型的Android设备上运行的应用程序项目: - 小装置:示例三星王牌 正常设备:三星galaxi s3 -tablet 10''

我的布局很复杂,使用match_parent和“dp”是不够的。我读过:http://developer.android.com/guide/practices/screens_support.html但我并不了解所有内容。

我是否必须创建更多的XML,res/layout-sw720dp/main_activity.xml文件夹ow我必须使用不同的限定符吗?它究竟是如何运作的?

4 个答案:

答案 0 :(得分:2)

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

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

Manifest中的以下代码支持所有dpis。

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

答案 1 :(得分:0)

Kindly Use This qualifier for your Android Project with compatible screen size.

Resource          Screen Size 

layout-small       <3 inch

layout-normal      3-4 inch

layout-large       >4 inch<7.1

layout-xlarge      7.1 - 10.1 inch

如果您仍然遇到问题,请使用此教程Link

答案 2 :(得分:0)

如果你想为不同的设备创建1个应用程序,那么你必须使用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用于放置图像。你必须为不同的可绘制文件夹

创建布局
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" />

以便为多屏分辨率设备开发应用程序。

答案 3 :(得分:0)

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

(1)将不同大小的图像(具有相同名称)放在4个不同的文件夹中:

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

(2)这些决议通常使用的尺寸为:

ldpi = 36 * 36 px mdpi = 48 * 48 px hdpi = 72 * 72 px xhdpi = 96 * 96 px

但您也可以使用所需尺寸的图像。(只是尝试按照不同尺寸的比例)。在所有这些图像中,将自动选择适合设备密度的图像。 / p>

(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; 
      }