Android:分辨率和密度有什么区别?

时间:2011-04-01 21:06:22

标签: android android-resolution

根据Android定义,我发现:

分辨率:屏幕上的物理像素总数

密度:根据屏幕分辨率,在屏幕的物理宽度和高度上的像素范围。

任何人都可以帮助我更好地理解这两个定义之间的差异吗?

提前致谢 角

6 个答案:

答案 0 :(得分:40)

分辨率是显示器一次可以显示多少像素的度量,例如。 640×480。密度是衡量每个像素在实际单位中的大小。这与屏幕尺寸有很大关系,例如。 15英寸显示器上的640x480。

将一个设备的分辨率与另一个设备的分辨率进行比较时,这是一个直接的比较:分辨率越高,一次显示的信息就越多。比较密度时:密度越高,显示屏越清晰。

如果你有高分辨率和低密度,那么你的屏幕会非常大。另一方面,低分辨率和高密度将导致非常小的屏幕。

答案 1 :(得分:29)

分辨率是指您可以在屏幕上显示多少像素。

密度取决于您的设备实际尺寸,如果它很小并且分辨率高,则密度高,因为您在较少的物理空间中显示更多像素。

答案 2 :(得分:9)

基本上:

  1. 分辨率涉及绝对像素数。 (查看维基百科Image Resolution
  2. 密度(也称为每英寸像素数 - PPI)涉及相对每英寸像素数。 (查看维基百科Pixel Density
  3. 保重, 贝乔

答案 3 :(得分:2)

最佳实践


支持多个屏幕的目的是创建一个可以在Android支持的任何通用屏幕配置上正常运行并且看起来很好的应用程序。本文档的前几部分提供了有关Android如何使您的应用程序适应屏幕配置以及如何在不同屏幕配置上自定义应用程序外观的信息。本节提供了一些附加提示和技术概述,有助于确保您的应用程序适用于不同的屏幕配置。

这是一个快速清单,说明如何确保应用程序在不同屏幕上正确显示: 1.在XML布局文件中指定维度时,使用wrap_content,fill_parent或dp单位 2.不要在应用程序代码中使用硬编码像素值 3.不要使用AbsoluteLayout(不推荐使用) 4.为不同的屏幕密度提供替代的位图可绘制

以下部分提供了更多详细信息。

  1. 使用wrap_content,fill_parent或dp单位作为布局尺寸
  2. 在XML布局文件中为视图定义android:layout_width和android:layout_height时,使用“wrap_content”,“fill_parent”或dp单位可确保在当前设备屏幕上为视图指定适当的大小。

    例如,layout_width =“100dp”的视图在中密度屏幕上测量为100像素宽,系统在高密度屏幕上将其缩放到150像素宽,以便视图占用大致相同的物理空间在屏幕上。

    同样,您应该更喜欢sp(与比例无关的像素)来定义文本大小。 sp比例因子取决于用户设置,系统缩放大小与dp相同。

    1. 请勿在应用程序代码中使用硬编码像素值
    2. 出于性能原因并保持代码更简单,Android系统使用像素作为表达维度或坐标值的标准单位。这意味着视图的尺寸始终使用像素在代码中表示,但始终基于当前的屏幕密度。例如,如果myView.getWidth()返回10,则当前屏幕上的视图宽度为10像素,但在具有更高密度屏幕的设备上,返回的值可能为15.如果在应用程序代码中使用像素值使用未针对当前屏幕密度进行预缩放的位图,您可能需要缩放在代码中使用的像素值以匹配未缩放的位图源。

      如果您的应用程序在运行时操作位图或处理像素值,请参阅下面有关“其他密度注意事项”的部分。

      1. 请勿使用AbsoluteLayout
      2. 与其他布局小部件不同,AbsoluteLayout强制使用固定位置来布置其子视图,这很容易导致在不同显示器上无法正常工作的用户界面。因此,在Android 1.5(API Level 3)中弃用了AbsoluteLayout。

        您应该使用RelativeLayout,它使用相对定位来布局其子视图。例如,您可以指定按钮小部件应显示在“文本小部件”的右侧。

        1. 使用大小和密度特定的资源
        2. 虽然系统会根据当前屏幕配置缩放布局和可绘制资源,但您可能希望在不同屏幕尺寸上调整UI,并提供针对不同密度进行优化的位图绘图。这基本上重申了本文前面的信息。

          如果您需要准确控制应用程序在各种屏幕配置上的外观,请在特定于配置的资源目录中调整布局和位图可绘制内容。例如,考虑要在中高密度屏幕上显示的图标。只需创建两种不同尺寸的图标(例如,中密度为100x100,高密度为150x150),并使用适当的限定符将两种变体放在相应的目录中: res / drawable-mdpi / icon.png //适用于中密度屏幕/ drawable-hdpi / icon.png //适用于高密度屏幕

答案 4 :(得分:2)

分辨率是可以在屏幕上显示的每个尺寸(宽度×高度)中找到的设备像素数。

例如,分辨率为“ 1024×768”的设备具有1024像素的宽度和768像素的高度。

像素密度通常以PPI(每英寸像素数)来衡量,PPI是指显示器上每英寸存在的像素数。使用该设备时,每英寸较高的像素密度可以提供更高的清晰度和清晰度。

例如,如果设备屏幕称为“ 100 PPI”,则表示每英寸有100个心理像素。

Reference

答案 5 :(得分:1)

分辨率=> Cp * Rp(COLUMN中的PIXEL数和RAW中的PIXEL数)

密度=> Np / 1英寸(每英寸PIXEL数)