和小石头一起学习屏幕适配(一)

提示:欢迎指正


前言

在工作中,无论是我们自己从零开始写的项目,还是维护的一个大的项目,在工作完成之后,必然不会缺少的就是屏幕适配。需要完成的功能效果在不同尺寸和不同手机分辨率的手机上显示UI设计的样子。不能在不同手机上,文字大小、图片位置等发生错位,和设计图不符。


一、引入的原因

可能有同学 抱怨安卓手机碎片化太严重,产商的定制化严重,尺寸不像iphone那样,就只有那么几个固定的尺寸。那我就要为android申冤了。你反过来想想,难道ipone不需要适配么,那iphone4,iphone5,iphone6,以及ipone6plus他们尺寸能一样么?他们不也得适配么,在没有适配的情况下,他们同样不能用px为单位写控件。ihone的适配方案有两种,一种是按照一种标准的机型如(iphone4s)作图,在项目中写一个适配的类,控件的尺寸用px,但需要乘上适配类中的比例缩放。另一种是按照百分比,和我们Android中使用dip为单位一个道理。

二、解决方案

1.确定单位

上面说了很多,其实我们应该想想,发生适配问题的根源是什么,对一个开发者来说,其实不是手机尺寸的多种多样,而是我们对手机以及ui设计图上的单位了解的不够彻底导致的。所以一遇到适配问题,就有一种头大的感觉。这节我将总结下我们开发中不得不懂的几种单位和他们之间转化的关系。他们分别是dp/(dip),dpi,px.
常见的单位
HTL HTL21的机型问例子像大家介绍他们之间的转化关系。它的主屏尺寸:5英寸 ,分辨率为1080x1920
计算

2.对上述单位的解释

dip(我们最常用的设备独立像素dp呢),分辨率Rslt代表该手机横向有1080个像素,纵向有1920个像素。Dpi代表一英寸有440个像素点。科普一下1inch=2.54cm。Dst密度代表该手机中1dp代表2.75个像素点。dp其实就是为了适配而生,官方规定160dpi的手机中1dp为1px;

最常用的开发目录res下的drawable下的多种文件夹,我们的系统会根据我们手机的分辨率来优先选择该用那个文件下的图片,下面我们简单的分析下。
drawable下的文件夹
比如我们刚算出来的Dpi为440dpi,他接近480dpi,系统优先选drawable-xxhdpi下的图片,如果没有该dpi会依次向上较低分辨率的文件夹寻找。 我调查了下现在三星Glaxy s6 的屏幕分辨率为2560*1440,屏幕尺寸为5.0寸。 ipone6: 1334 *750 ,4.7寸屏。经过计算,会发现他们的Dpi都在480dpi附近。

总结

最后总结下,其实我们最关心的是手机的密度density,他代表着我们的1dp究竟代表实际尺寸到底有几像素。比如我们刚才算出来的density为2.75。我们在定义控件宽高是,他代表着1dp=2.75px。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯哥666

谢谢老板鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值