Android 文字绘制与 DPI 、屏幕尺寸的关系?

与屏幕实际尺寸无关,取决于 ROM 指定的像素密度与屏幕真实像素密度之间的关系。

编译 ROM 时会指定像素密度的。只能指定为以下几个值:

ldpi: 120ppi (mdpi x 0.75)

mdpi: 160ppi (android 基准 ppi, 1dp=1px)

tvdpi: 213.333ppi (xhdpi / 1.5)

hdpi: 240ppi (mdpi x 1.5)

xhdpi: 320ppi(mdpi x 2)

xxhdpi: 480ppi(mdpi x 3)

在生产 android 手机的时候,应当尽量选择与这些 ppi 相接近的像素密度。

屏幕的真实 ppi 如果完全等于这几个指定的 ppi,并且被指定为确定的 ppi,那么相同 sp 的字体,最终显示的物理大小相同。

但如果使用的不是以上一个标准 ppi,那么最终显示的效果与真实大小有差异,具体计算方式如下:

假如屏幕 A 是 440ppi 的,ROM 被指定为 480 ppi,那么屏幕显示的实际上是 480/440=1.09 倍的真实大小。

而另外一块屏幕 B,假定是 340 ppi,ROM 被指定为 320 ppi,那么屏幕显示的实际上是 320/340=0.94 倍的真实大小。

因为 0.94 < 1.09,所以,这块 340ppi 的屏幕 B,实际的字体显示尺寸反而比 440ppi 的屏幕 A 更小。

假定有一块屏幕 C,像素密度是 280 ppi,ROM 被指定为 320 ppi,那么屏幕显示的实际上是 320/280=1.14 倍的真实大小。

因为 1.14 > 1.09 ,这块 280ppi 的屏幕 C,实际的字体显示尺寸比 440ppi 的屏幕 A 更大。

至于手机的屏幕的物理尺寸,它只决定了总共含有多少个 sp,但不决定每个 sp 的大小。决定每个 sp 大小的是手机屏幕的真实像素密度,以及这款 ROM 被编译时指定的像素密度(对 android 应用程序来说,像素密度只有指定的那几个)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容