【DIP】Density independent pixels屏幕无关像素

一、使用目的

为避免不同分辨率屏幕在使用相同程序时,造成控件大小不可控而使用的新单位。

二、用法

定义为在160ppi设备上,1px等于1dip。

举例:

使用px计算:

160ppi的设备A上有一个40px*40px控件,其实际尺寸为:

40px/160ppi=0.25in。

该控件以dip为单位表示尺寸为40dip*40dip。

现要求将其放于320ppi设备B上。

则B中的控件物理尺寸大小为320ppi*0.25in=80px。

因此需更改该控件为80px*80px。

使用dip计算:

A设备上的控件为40dip*40dip。

B设备的ppi与A之比为dip系数,320ppi/160ppi=2。

因此B设备上控件尺寸应为2*40dip=80dip,即80dip*80dip。

三、实际运用

当设计控件坐标时假设底层以px为数据源单位,现有控件尺寸为(x,y),将x、y以计算公式代替:

x=Xpx*(Ippi/160)

届时只需要更改不同屏幕的ppi参数I,即可适配相同大小且合适的控件尺寸。

四、总结

对解决小尺寸高分辨率的屏幕的触控控件尺寸的参数频繁调参适配十分有效。

另外,这种算法实际上只是引入一个新单位,对各种型号的分辨率做了一个统一,将公式计算内置了,省去工程师来回换算的过程。

猜你喜欢

转载自blog.csdn.net/qq_34217861/article/details/126101673
今日推荐