现在的Android市场,手机碎片化真的是不敢恭维,屏幕分辨率,尺寸,各式各样,虽然满足了广大消费者,但是却也搞得广大android开发者头疼,如何才能对这些手机进行完美的适配呢。
官方给出了一个建议,dp适配,据说以dp为单位能够在不同的手机上显示相似的结果,感觉可以一劳永逸了,但是却也不尽然,首先需要分析一下dp的适配方案:
其实手机才不认识dp这个单位呢,它只认识px,所以dp最终还是会转化为px的,那他们的关系怎么换算呢:
density = px/dp;
density = dpi/160;
px = dp * (dpi/160);
在dpi =160的时候,1dp 大约为1px,这是谷歌给出的,那为什么说dp无法适配所有的手机呢,比如咋相同分辨率的手机上,1280 * 720,如果屏幕的尺寸不一样的话,dpi的值就不一样了,因为:
明白了吧,就算分辨率一样,如果屏幕尺寸不一样,dpi也不一样,所以dp无法解决所有的屏幕适配;
那有没有更好的方式去适配呢,有,百分比适配,可能大家也听说过,比如鸿洋的百分比适配方案,的确很不错,