关于屏幕分辨率的问题
2024-03-02 16:07:12发布 浏览377次 信息编号:102428
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
关于屏幕分辨率的问题
最近在学习开发,涉及到屏幕分辨率问题以及很多容易混淆的概念。 在网上查找了一些资料后,我终于明白了每个概念的含义以及它们之间的联系。 现在我正在写一篇博客来总结一下。 在这里我不得不抱怨一下,网络上的信息真的很容易误导人们。 作者的表达能力确实有限。 他把很多容易理解的事情变得非常复杂、难以理解。 这篇文章我尝试用最简单的方式来使用。 以通俗易懂的方式解释,保证被理解。
1. 像素,px
px是pixel的缩写,意思是像素,是屏幕上的一个小点。 因为太小了,我们看不到,但如果放大看,它们只是小方块。 这些小方块就是像素。 以我的华为nova5 pro手机为例。 它有屏幕,也就是说整个屏幕是由横向1080个小块,纵向2340个小块组成的,这就是分辨率。
2. 屏幕尺寸
我们所说的屏幕尺寸是指对角线长度。 以我的手机为例,它是6.39英寸,换算成厘米就是16.23厘米。 结果非常一致。
3.dpi
DPI是dots 的缩写,意思是一英寸内的像素数。 一般取值为120、160、240等,表示一英寸有120个像素。 其他数字相同。
需要指出的是,上述概念是不准确的。 dpi的准确翻译应该是每英寸的点数,每英寸的像素数应该是ppi(每英寸)。 两者的区别涉及到印刷领域更复杂的知识。 ,我们在这里不详细讨论它们,我们只是将它们视为相同。
4. dp和dip
dp是dip,是它的缩写和全称,意思是密度无关像素。 就是这个概念和dpi的区别让我纠结了好几天。 它不等于 dpi。 下面我来描述一下它存在的意义。
不同的手机有不同的屏幕尺寸和分辨率,这就产生了一个问题。 同样的东西(以照片为例)在不同的手机上会以不同的尺寸显示。 例如,宽度(和高度相同)为160px的照片在手机上显示为1英寸,但在手机上仅显示0.5英寸。 因此,我们在开发时一般不使用px作为图像的单位,而是使用dp。 dp怎么用?
我们一般以该像素密度下1dp=1px为标准,用公式dp=(dpi/160)px来计算其他像素密度下的dp,这里一般称dpi/160得到的值。 例如,在像素密度为 的情况下,1dp=(320/160)px=2px。 还是以照片为例,如果我们希望它的宽度是160px,那么在像素密度下,dp就是160,为什么呢? 因为此时1dp=1px,有160px,计算出来的dp是160。而如果低于的话,应该是80dp。 这里很多人会很困惑,我也纠结了很久,因为此时1dp=2px,按逻辑px就是160,dp不应该是320吗? 事实上,事实并非如此。 此时px为160,我们需要计算dp,所以应该将160除以2得到80dp。 因果关系无法颠倒。
如果这个例子很难理解,我们换个例子。 例如,1英寸=2.54cm,现在我有10cm的东西,那么它是多少英寸? 结果是 10 除以 2.54 得到 3.94 英寸,而不是 10 乘以 2.54。 这个例子和上面一模一样,只不过因为我们从小就接触过,所以对长度字段中的转换更加了解,但对分辨率字段接触很少。
回到上面,我们在开发中之所以使用dp作为单位而不是px,是因为使用px作为单位会导致不同设备上显示的图片大小不同,而使用dp则不会出现这个问题。 例如,如果我们将图像宽度设置为160dp,那么下面,1dp=1px,则图像宽度为160px,显示尺寸为1英寸。 下面,1dp=2px,那么图片宽度就是320px(1dp相当于2px,所以160dp很快就相当于320px),此时显示尺寸依然是1英寸。 两者的显示尺寸相同,但像素不同,即分辨率不同。 前者比较模糊,后者比较清晰。
提醒:请联系我时一定说明是从星空网上看到的!