android屏幕适配,hdpi,xhdpi,xxhdpi理解,常见出图
屏幕适配
⾸先理解下各个尺⼨单位代表的意思
尺⼨含义
1. px: 像素
2. dip: Density-independent pixel 独⽴像素密度
3. dpi: dot per inch 分辨率
4. ppi: pixel per inch 指每英⼨所拥有的像素
ppi计算:(宽度的平⽅ + ⾼度的平⽅)开根号 / 对⾓线的长度
5. Density: density值表⽰每英⼨有多少个显⽰点,与分辨率是两个概念
density计算:dpi / 160 密度值
各个单位之间的互换
公式: dp = px / (dpi / 160) px = dp * (dpi / 160) dp = px / denisity or dp = px / (dpi / 160)
dpi: 是⼚商定义的常量值 = 根据勾股定理开根除4
ldpi: dpi 120 –> 240 * 320
mdpi: dpi 160 –> 320 * 480
hdpi: dpi 240 –> 480 * 800
xhdpi: dpi 320 –> 720 * 1080 如:(720*720+1080*1080)开根号 除 4 = 320dpi
xxhdpi:dpi 380 –>1080p 1920*1080 ⾼清
px :⼿机像素 = dp * (dpi / 160)
ldpi: 120px–> dp = 120 / (120 / 160) = 160dp
mdpi: 160px–> dp = 160 /(160/160) = 160dp
hdpi: 240px–> dp = 240 /(240/160) = 160dp
xhdpi:360px–> dp = 360 / (320/160)= 180dp
densityDip:值表⽰每英⼨有多少个显⽰点 = px / denisity
QVGA: density=0.75 densityDpi=120 QVGA(240*320)
HVGA:density=1.0 densityDpi=160 HVGA(320*480)
VGA:density=1.0 densityDpi=160 VGA(480*640)
WVGA:density = 1.5 densityDpi=240 WVGA(480*800)
WQVGA:density=2.0 densityDpi=120 WQVGA(240*400)
⽽当densityDip=160时,1dp=1px。
设计资源紧张怎么办?
在现在的App开发中,基本都会有iOS和Android版本,有些公司为了保持App不同版本的体验交互⼀致,
还有些公司的设计资源可能⽐较紧张,这些情况下iOS和Android版本基本是⼀个设计师主导,⽽⼤多数情况下设计师可能更会以iPhone⼿机为基础进⾏设计,包括后期的切图之类的。这个时候⾝为Android开发⼈员你是否还要求设计师单独为Android端切⼀套图⽚资源呢?这会让你们的设计师崩溃的,下⾯就来告诉⼀个项⽬中总结的更棒的⽅法。
出⼀套图,有⼈肯定会觉得使⽤最新的iPhone6(6s和6的尺⼨以及分辨率都⼀样)来做原型设计,⽽iPhone6的屏幕分辨率为
1334×750, 屏幕尺⼨为4英⼨,根据勾股定理(a^2 + b^2 = c^2)1334^2+750^2, 然后再对其开根号可求出屏幕对⾓线的分辨率为:1530,除以4可得出iphone6的dpi:1530/4≈382 可以看出iPhone5的屏幕的dpi约等于380, 刚好属于xhdpi,但是好的产品⼀般是以⽤户体来作标准的,不是所有⼈都⽤得起i6,⽤得起6p这些⾼清屏⼿机;
⽬前我们公司是以iPhone5(5s和5的尺⼨以及分辨率都⼀样)来做原型设计,⽽iPhone5的屏幕分辨率为640X1164, 屏幕尺⼨为4英⼨,根据勾股定理算出iPhone5分辨率为:1328,dpi为:320, 刚好属于xhdpi; 并且xhdp在xxhdpi上的显⽰效果也相差不多;
xhdpi是⽬前最⼤市场
⼀般情况下只需要提供⼀套⼤的dpi的图⽚就ok了,现在市⾯⼿机分辨率最⼤可达到1080X1920的分辨率,如
Nexus6p,2560×1440,dpi更是⾼于xxhdpi,但是毕竟还没普及,⽬前市⾯上最普遍的⾼端机的分辨率还多集中在720X1080范围,也就是多集中在xhdpi,所以⽬前来看xhpdi规格的图⽚成为了⾸选。当然随着技术规格的提⾼以后发展,以后可能市场上xxdpi的⼿机会越来越普遍,但这是后话。
.因此得出结果
出图:效果图(主要就1套)
xhdpi: 720 * 1280
图⽚的简单适配
布局适配
不同的⼿机的图⽚放到 对应的分辨率的⽬录下drawable-xxxx
在layout的后⾯添加xxx,添加的布局名称要要⼀致android最新版
ldpi: dpi 120 –> 240 * 320
mdpi: dpi 160 –> 320 * 480
hdpi: dpi 240 –> 480 * 800
xhdpi: dpi 320 –> 720 * 1080
动态的布局适配
⼀般屏幕适配也有通过margin或者权重来去做屏幕的适配

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。