Android 屏幕适配攻略(二)单位dp与px来表示控件的尺寸


在安卓中,将屏幕密度分为了五类

屏幕密度 对应的标签 对应的像素
120dip ldpi 1dp= 0.75px
160dip mdpi 1dp= 1px
240dip hdpi 1dp= 1.5px
320dip xhdpi 1dp= 2px
480dip xxhdpi 1dp= 3px
640dip xxxhdpi 1dp= 4px

通过计算,假如计算出来的屏幕密度为 150,安卓系统会进行判断,150 在 120dip 与 160dip 之间,那么系统会使用 160dip为 基数来进行尺寸的计算

也就是说 例如我们在布局文件中设置了一个控件的宽度为10dp,那么
在 以160 dip为基数计算的屏幕上显示 的控件的实际宽度为10px,
在 以240dip dip为基数计算的屏幕上显示 的控件的实际宽度为15px,
在 以320dip dip为基数计算的屏幕上显示 的控件的实际宽度为20px,
在 以480dip dip为基数计算的屏幕上显示 的控件的实际宽度为30px


1 使用px作为单位来表示宽度

例如在开发中设置一个TextView的长度为160px,那么无论在何种屏幕配制的手机上显示的 TextView 的宽度都是 160px

也就是说TextView的宽度不会随着屏幕的大小而动态的变化宽度,其宽度始终是160px

<TextView android:layout_width = "160px"android:layout_height = "44px"android:background = "#294881" />
1.1 3.2英寸 320x480手机(屏幕密度160)

1.2 3.7英寸 480x854手机(屏幕密度264->240)

1.3 4.65英寸 720x1280手机(屏幕密度320)


2 使用dp作为单位来表示宽度

例如在开发中设置一个TextView的长度为160dp,那么在屏幕密度为160的屏幕上显示出来的TextView也就是160px,而在屏幕密度为320的屏幕上显示出来的TextView的宽度是320px,也就是说开发中设置到的宽度与高度是要与实际中屏幕的中的显示尺寸相关联,在安卓中是通过比例来计算关联的

<TextView android:layout_width = "160dp"android:layout_height = "44dp"android:background = "#294881" />

安卓中以 320 x 480 密度为160dip的手机为基准,也就是说在这个配制上的手机中,1dp = 1px =1sp ,也就是说我们上面写到设置一个TextView的长度为160dp,那么在屏幕密度为160的屏幕上显示出来的TextView也就是160px

当我们把上述180dp的TextView放在 屏幕密度为 320 的屏幕上时,它显示出来的TextView将会动态的被计算创建 180 x 320 /160 = 360 也就是实际中显示出来的TextView的宽度将是 360px

2.1 3.2英寸 320x480手机(屏幕密度160)

屏幕密度160,就是在这里 1dp = 1px;
那么在这里显示的 宽度为160dp的TextView的实际宽度 为 160 px

2.2 3.7英寸 480x854手机(屏幕密度264->240)

屏幕密度264,接近于240,所以安卓默认取240dip,也就是在这里 1dp = 1.5px;
那么在这里显示的 宽度为160dp的TextView的实际宽度 为 160 * 1.5 = 240 px

2.3 4.65英寸 720x1280手机(屏幕密度315->320)

屏幕密度315,接近于320,所以安卓默认取320dip,也就是在这里 1dp = 2px;
那么在这里显示的 宽度为160dp的TextView的实际宽度 为 160 * 2 = 320 px

Android 屏幕适配攻略(二)单位dp与px来表示控件的尺寸相关推荐

  1. Android 屏幕适配攻略(三)单位dp与sp

    Android 屏幕适配攻略(三)单位dp与sp 1 一般手机默认使用情况下 在安卓中,一般情况下,也就是正常使用情况下 屏幕密度 对应的标签 对应的像素 sp 120dip ldpi 1dp= 0. ...

  2. Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小

    Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小 1 动态获取手机屏幕的 屏幕密度与对应像素比例 例如在 320 * 480 尺寸为 3.2 英寸的手机 ,对应的像素密度 ...

  3. Android 屏幕适配攻略(一)

    Android 屏幕适配攻略(一) 1 常用的单位概述 px pixels(像素) 表示屏幕实际的象素.例如,320 x 480 (也就是生活中常说的屏幕分辨率为320x480)的屏幕在横向有320个 ...

  4. Android 动态创建控件并设置控件的大小之Android屏幕适配攻略(五)

    Android 屏幕适配攻略(五)动态创建控件并设置控件的大小 题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频 ...

  5. Android 屏幕适配攻略(六)设置通知样图标与启动图标适配

    Android 屏幕适配攻略(六)设置通知样图标与启动图标适配 1 Android中资源文件中的图片加载分析 Android中对屏幕的像素适配处理分类 屏幕密度 对应的标签 对应的像素 120dip ...

  6. Android Q适配攻略(二)(后台定位适配)

    Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...

  7. Android Q适配攻略(一)(图标适配)

    Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...

  8. Android Q适配攻略(四)(后台Activity启动限制)

    Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...

  9. Android 10 适配攻略

    相比较去年的写的Android 9适配,这次Android 10的内容有点多.没想到写了我整整两天,吐血中... 准备工作 老规矩,首先将我们项目中的targetSdkVersion改为 29. 1. ...

最新文章

  1. 综述:PyTorch显存机制分析
  2. word邮件合并一页8个_利用word邮件合并批量制作准考证
  3. python3项目-Python3基础教程(十九)—— 项目结构
  4. 对scala函数总结
  5. Python中的两种路径
  6. 关于 try catch 捕捉不到异常
  7. 闽南师范大学计算机学院研究生,闽南师范大学计算机学院2019考研调剂信息
  8. devstack mysql_devstack 安装openstack newton版
  9. Uva 12009 平方数尾数与自身同样 dfs 构造
  10. Lightroom Classic 教程,如何将照片从 Lightroom 移至Ps,在 Ps 中为照片应用滤镜?
  11. Centos7.5软硬件、IP地址及主机名称配置详细教程
  12. MYSQL排序加分页报错Out of sort memory, consider increasing server sort buffer size
  13. python柠檬班第三期错误报告
  14. 在未来时空中沉浸探索,体验引领时代的建筑节能展馆
  15. (zhuan)富文本 Attributes 下划线、删除线等
  16. STM32 - 使用FSMC控制LCD
  17. 微信小程序的基本使用
  18. 青少年等级考试【Python通关干货】(二级)
  19. html5制作当当图书榜页面,HTML 网页设计指南
  20. Locust使用手册--开始使用Locust

热门文章

  1. Image inpainting 图像修补最新综述
  2. CVPR 2019 Oral 目标跟踪最强算法SiamRPN++开源实现
  3. ffmpeg实现摄像头拉流_干货 | 速看!乐橙K32Famp;K36F摄像头全彩夜视功能的不同点全在这了!...
  4. 收藏 | PyTorch实现各种注意力机制
  5. 想学数学建模???先来看会这几个MATLAB题吧!!!(一)
  6. 机器学习(七)支持向量机svm中级篇
  7. jquery 立体走马灯_jQuery简单的文字跑马灯特效
  8. python爬取京东手机数据_实例解析Python如何实现爬取京东手机图片
  9. mysql安装后变10g_Oracle 10G安装中一些常见问题解决
  10. oracle ora32771,Oracle的文件号、相对文件号及其他(续)