Android多屏幕适配

基本概念:

(1) px : 像素(pixel)设备上的物理像素点。
(2)dp : 根dip是同一个概念,与屏幕物理像素点无关,而是基于屏幕密度抽象单位,被称作为:“设备独立像素”,会随着屏幕的密度进行自动的大小调整。
(3)sp : 专用于文字大小的设置, 可根据字体大小首选项进行缩放。
(4) inch : 英寸, 1英寸等于2.54厘米。
(5) dpi : 屏幕像素密度,单位英寸上像素点的数量。
(6) 分辨率: 是指纵横方向上的像素点数,单位是px 。 一般都是纵向像素* 横向像素,比如:1920*1080 ,1280*720 。
(7) 屏幕尺寸 : 屏幕对角线的长度,单位是inch。 比如:我们平时常说的5寸手机,4.7寸手机, 是指手机屏幕的对角线长度为5英寸。

转换关系
常见尺寸表
这里写图片描述
说明:
●google官方用的词是approximately,比如ldpi是值近似等于120dpi;
● 分辨率列只是比较有代表性的而已,但设备的dpi,还需要根据相应的设备尺寸来计算。同一分辨率,设备尺寸越大,那么dpi就越小,单位英寸上像素点越稀疏。

换算公式

android.util.TypedValue类提供了一个函数,提供所有单位与px的换算关系。

● dpi如何计算?

dpi,英文全称dot per inch,是指每英寸上的像素点个数。 计算公式:dpi=√(X²+Y²)/Z (其中 X:纵向的像素个数;Y:横向的像素个数;Z:屏幕尺寸)

● scale是如何计算的?

定义以160dpi作为基准,当前设备的dpi/160dpi = scale值。也就是当设备的dpi为160时1dp=1px.

● dp与px如何转换?

计算公式:pxs = dps * (dpi/160),
比如:320dpi的设备,10dp转换为px为 10 *(320/160)px = 20 px,即320dpi下10dp=20px.

● 1dp到底等于多长呢?

假设设备的dpi=320, 是指320px对应的长度为1英寸, 那么1px=1/320 英寸。再根据前面的公式, 1dp = (320/160) px = 2px。故1dp对应的长度为2 * (1/320)英寸,即1/160英寸。
同理,假设设备的dpi =N,那么1dp = (N/160) px = (N/160) * (1/N) inch = 1/160 inch,再加上前面提到的近似,可以得出结论为1dp约等于1/160英寸。

多屏适配

(1)适配原则
layout中,最好采用wap_content, fill_parent,dp,可保证在屏幕上有合适的大小;
像素单位使用dp, 文字单位使用sp;
程序代码中不要出现具体的px;
图片应多使用.9.png;
使用百分比布局;

(2)适配方法
查看不同分辨率的设备市场占有率,分析出需要支持的设备分辨率:
http://screensiz.es
http://opensignal.com/reports/2015/08/android-fragmentation
对不同大小的屏幕提供不同的layout;
对不同密度的屏幕提供不同的图片;

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值