0

我有一个可以在不同类型的 android 设备上运行的应用程序的项目:-small device :example samsung ace -normal device:samsung galaxi s3 -tablet 10''

我的布局很复杂,使用 match_parent 和“dp”是不够的。我已阅读: http: //developer.android.com/guide/practices/screens_support.html但我并不完全理解。

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

4

4 回答 4

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 中的以下代码支持所有 dpi。

<supports-screens android:smallScreens="true" 
          android:normalScreens="true" 
          android:largeScreens="true"
          android:xlargeScreens="true"
          android:anyDensity="true" />
于 2012-09-19T09:28:26.533 回答
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" />

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

于 2012-09-19T09:33:31.427 回答
0

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

(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; 
      }  
于 2012-09-19T10:19:14.697 回答
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

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

于 2012-09-19T09:30:12.283 回答