Android开发中dpi和ppi的理解

一,澄清一些误区

1.1概念

dpi是dot per inch,每英寸多少点,针对的是印刷页即打印到纸上或者应用到ui切的图片中;
ppi是 Pixel per inch,每英寸像素数,针对的是手机屏幕;

1.2误区

网上有dpi和ppi的关系,甚至还有给出两者之间的换算关系的。
产生dpi和ppi混乱的原因:ui切图的时候以dpi为准,而手机厂商给定的屏幕分辨率参数中给的是ppi。实际上ppi和dpi就概念上来说是没有一丁点关系的,更没有一个换算的关系。但是在这里有一个趋势上的相同点,就是dpi越大ppi越大,而且我们在换算px到dp或者图片放入哪个drawable文件夹中时候只能将ppi当成dpi(因为切图的大多以iphone为切图的基础屏幕,而iphone的官方参数也只能查到ppi,且即使我们用Android手机为切图基础屏幕,在java代码中获取dpi也是获取的一个DisplayMetrics类,中的一个固定的值,而且在换算的时候是1.5,2,3等倍数也是一个范围值)。

二.在开发过程中涉及dpi和ppi的时候怎么用

2.1使用场景

因为图片资源要放在哪个drawable文件夹中,从标注图中的px转化为dp都用的dpi而不是ppi。所以基本上开发的时候我们使用dpi就ok了;至于ppi在什么时候用我认为有两个地方:a.查看比较手机分辨率高低 b.计算屏幕的实际物理尺寸(单位inch)

2.2具体使用

dpi:a.将切好的图放入对应的drawable文件中和px转化为dp(根据切图用的基本屏幕信息比如根据iphon6,屏幕参数为主屏尺寸:4.7英寸主屏分辨率;1334x750像素;屏幕密度:326ppi),那么这里的换算倍数我们根据下面的图定为2(靠近谁就先定为谁);当然这只是一个选择倍数的依据,是我们靠近最优数值的第一步,具体的数值也要根据呈现效果来定,毕竟Android的屏幕众多,适配是必不可少的。

图片放入哪一个drawable文件夹中根据下面的依据:
这里写图片描述
当然如果切图的美工人性化一些的话那么他会帮你标注出是*x的图,毕竟我们的美工就是这么做的,这样的话我们就可以将图直接根据上面的比例放入我们的drawable文件中了。

展开阅读全文

没有更多推荐了,返回首页