android屏幕适配解决方案

本文深入探讨了屏幕尺寸、分辨率与像素密度的概念及其计算方法,包括px、dp、dip、sp等单位的理解,以及如何根据不同屏幕尺寸与密度进行适配,通过实例解析了如何在代码中实现跨屏兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

屏幕尺寸:

屏幕对角线的长度
单位英寸,1英寸=2.54厘米

分辨率

在横纵线上的像素点数
单位是px,1px=1个像素点
一般以纵向像素*横向像素,如1920*1080

屏幕像素密度

指每英寸上的像素点数(屏幕对角线上)
单位dpi,与屏幕尺寸和屏幕像素有关
1920*1080 dpi=445

计算方式:sqrt{1920^2+1080^2}/尺寸(4.95对角线)

px,dp,dip,sp

dp dip是密度无关像素
以160dpi为基准,1dip=1px
在320*480的机子上:160dpi 1dp=1px
在800*480的机子上:240dpi 1dp=1.5px
sp 12,14,18,22 设置字体大小的时候不要设置奇数或小数,因为有可能会造成精度的丢失。

mdpi,hdpi,xdpi,xxdpi

存放相同图片的不同像素状态, 系统会更具设备的具体像素来选择不同的图片。同理不同像素下values中定义dimen的不同值。
m     120~160(dpi)
h     160~240
xh    240~320
xxh   320~480
xxxh  480~640

解决方案

一、支持各种屏幕尺寸(代码中解决)
1.用wrap_content match_parent weight(权重)
Weight
例如屏幕上有两个button,权重分别为1,2
当width设置为match_parent时,权重为1的button实际占屏幕的2/3,这是怎么回事呢?
原来,屏幕计算出的宽度=原来的宽度+剩余空间*控件所占的百分比
2.使用用相对布局,不用绝对布局
各个控件相互依赖避免适配造成的问题。
3.使用限定符
尺寸限定符res/layout-large/ 大于7英寸的时候利用此布局
最小宽度 res/layout-sw600dp 

方向限定符values-sw600dp-land/布局 水平方向
values-sw600dp-port/布局 竖直方向
4.使用自动拉伸位图
尽量使用android系统中后缀为.9的图片 
这种图片的拉伸可以自定义画点或画线,来指定被拉伸的位置
左上是拉伸高度  右下是间距 
二、支持各种屏幕密度(放满足各个dpi的图片)
三、实施自适应用户界面流程(主要解决平板适配)

后续可访问:http://blog.youkuaiyun.com/lmj623565791/article/details/45460089

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值