24

根据Android定义,我发现:

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

  • 密度:基于屏幕分辨率,像素在屏幕物理宽度和高度上的分布。

我怎样才能更好地理解这两个定义之间的差异?

4

6 回答 6

43

Resolution is a measure of how many pixels a display can show at a time eg. 640x480. Density is a measure of how big each pixel is in actual units. This relates heavily to screen size eg. 640x480 on a 15' display.

When comparing one device's resolution to another, it's a straight-forward comparison: the higher the resolution, the more information you can display at a time. When comparing density: the higher the density the sharper the display will appear.

If you have high resolution and low density, then your screen will be very large. On the other hand, low resolution and high density will result in a very small screen.

于 2011-04-01T21:10:03.453 回答
33

Resolution is about how many pixels you can show on screen.

Density is based on your device real size, if it's small and has a higher resolution, than the density is high cause you show more pixels in less physical space.

于 2011-04-01T21:08:33.600 回答
9

基本上:

  1. 分辨率涉及像素的绝对数量。(查看维基百科图像分辨率
  2. 密度(又名每英寸像素数 - PPI)涉及每英寸像素的相对数量。(查看维基百科像素密度

保重,贝科

于 2011-04-04T19:21:17.240 回答
2

最佳实践


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

下面是一份关于如何确保应用程序在不同屏幕上正确显示的快速清单: 1.在 XML 布局文件中指定尺寸时使用 wrap_content、fill_parent 或 dp 单位 2.不要在应用程序代码中使用硬编码的像素值3.不要使用 AbsoluteLayout(已弃用) 4.为不同的屏幕密度提供替代位图可绘制对象

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

  1. 使用 wrap_content、fill_parent 或 dp 单位作为布局尺寸

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

例如,layout_width="100dp" 的视图在中等密度屏幕上测量为 100 像素宽,系统在高密度屏幕上将其缩放到 150 像素宽,因此视图在屏幕上占据大致相同的物理空间.

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

  1. 不要在应用程序代码中使用硬编码的像素值

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

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

  1. 不要使用 AbsoluteLayout

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

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

  1. 使用特定于大小和密度的资源

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

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

于 2013-11-25T06:19:10.887 回答
2

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

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

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

例如,如果设备屏幕被称为“100 PPI”,则意味着它每英寸有 100 个心理像素。

参考

于 2020-04-01T14:11:13.143 回答
1

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

密度 => Np / 1 英寸(每英寸的像素数)

于 2015-02-19T09:40:07.990 回答