摩客怎么设置安卓的dp_Android屏幕适配之单位DP
基本概念
名词概念
名称
解释
px
像素点,一个像素点为1px
dp
即dip,像素密度
sp
同dp,但是可以根据系统字体偏好缩放
dpi
每英寸的像素数,也叫做屏幕密度
换算关系
根据换算关系:
320 x 480分辨率,3.6寸的手机:dpi为160,1dp=1px
dp解析
dp是比例吗?为什么要用dp?
实验一
相同分辨率,不同大小的手机AB:
代号
分辨率
尺寸
dpi
dp
手机A
320x480
3.6寸
160
1dp=1px
手机B
320x480
7.2寸
80
1dp=0.5px
假如AB都设置一个宽度为100dp的TextView:
代号
TextView宽度
手机宽度
比例关系
手机A
100px
320px
10/32
手机B
50px
320px
5/32
得出结论:
对于相同分辨率的手机,屏幕越大,同DP的组件占用屏幕比例越小。
如图所示:
69F8518D-DB48-46FA-9692-1781D4BFCE96.png
C13B2003-1A88-4081-BF86-6369E78543A7.png
实验二
相同大小,不同分辨率的手机AB:
代号
分辨率
尺寸
dpi
dp
手机A
320x480
3.6寸
160
1dp=1px
手机B
640x960
3.6寸
320
1dp=2px
假如AB都设置一个宽度为100dp的TextView:
代号
TextView宽度
手机宽度
比例关系
手机A
100px
320px
10/32
手机B
200px
640px
10/32
得出结论:
对于相同尺寸的手机,即使分辨率不同,同DP的组件占用屏幕比例也相同。
如图:
519BBF6F-35CD-42FE-BBE2-906927DDDCDB.png
6D49FB83-DF00-4052-BDED-FB95D37ED32E.png
综上:
dp的UI效果只在相同尺寸的屏幕上相同,如果屏幕尺寸差异过大,则需要重做dp适配。
这也是平板需要单独做适配的原因,可见dp不是比例。
为什么不用比例
为什么Android要用dp,而不用比例以兼容不同大小的手机呢?
如果用dp,假设在手机A上设置一个宽度为屏幕一半宽dp值,高度为屏幕一半高dp值的TextView。效果图如下:
156F9450-7C1E-4A55-AE3B-0A3684563A6F.png
当它横屏时,显示效果如下:
FF6FBC0E-570B-473A-BBBC-8ACE7A9DAFBC.png
但是,如果Android没有采用dp作为单位,而选用比例作为单位,对于相同的TextView,横屏后的显示效果如下:
8B5338FD-450D-4145-966F-1E2B20E98799.png
整个TextView组件都变形了!
所以:
dp可以维护Android组件自身的比例平衡,不至于在不同屏幕上变形。这是比例做不到的。
总结
dp的意义在于:
同大小的手机,使用dp做出的UI效果一定相同。
不同大小的手机,使用dp做出的UI效果一定不同(这里不考虑weight等参数)。但只是组件相对于屏幕的大小比例有所缩放,组件自身的宽高比是不变的,即组件自身不会变形。
摩客怎么设置安卓的dp_Android屏幕适配之单位DP相关推荐
- 摩客怎么设置安卓的dp_Android屏幕适配——使用 dp 实现完美适配
我们一直知道 Android 可以使用 dp.sp 完成简单的适配,那你真的理解了么?先来看几个问题: dp 是如何进行适配的? dp 和 px 是如何换算的? sp 和 dp 的区别? dp 适配为 ...
- 摩客怎么设置安卓的dp_Android下设置文字大小用sp还是dp
相信很多人看到标题会大吃一惊,长度宽度的数值要用dp,字体的大小用sp,这个理论恐怕在大家心目中早已根深蒂固,官方文档 上也是这样写的 结论: 1.当修改系统字体大小时,字体大小以dp为单位时,大小不 ...
- 摩客怎么设置安卓的dp_Android中dp和px之间进行转换
在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip).一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致.但是在代码中,如何处理呢?很多控件的方法中都只提供了 ...
- 摩客怎么设置安卓的dp_Android中的dp
在Android开发中,我们在描述View的宽.高时通常使用dp,但是设计在UI中进行标注时,却使用的是px.所以很多时候就导致UI和实际效果不一致.史记开发中,给设计和开发人员带来了很多困扰. dp ...
- 摩客怎么设置安卓的dp_Android中sp和dp区别
--- title: Android中sp和dp区别 date: 2016-09-08 17:04:15 tags: Android categories: Android开发 --- ## 理解an ...
- 摩客怎么设置安卓的dp_安卓屏幕完美适配方案——独家秘笈
一.为什么要适配 由于Android系统的开放性,任何用户.开发者.硬件厂商.运营商都可以对Android系统和硬件进行定制,修改成他们想要的样子. 但是这种"碎片化"到达什么程度 ...
- 摩客怎么设置安卓的dp_摩客【操作攻略】
很多小伙伴都遇到过摩客的困惑吧,一些朋友看过网上零散的摩客的处理方法,并没有完完全全明白摩客是如何解决的,今天小编准备了简单的解决办法,只需要按照 1:如图所示,我们所做的是一个登陆的简单的线框图,现 ...
- 摩客怎么设置安卓的dp_安卓的显示单位dp、dip、px、sp
dp==dip:设备独立像素 .(device independent pixels) dip是年迈的dp,已经退休,在比较老的代码中还可以看到dip.目前谷歌推荐用dp,在我们开发安卓程序的时候,除 ...
- 摩客怎么设置安卓的dp_简单谈谈Android中SP与DP的区别
从一开始写Android程序,就被告知这些常识 一.dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp=1px.不同 ...
最新文章
- oracle触发器初始化,oracle – 触发器无法初始化变量
- NAT的完全分析及其UDP穿透的完全解决方案
- [Scoi2015]小凸玩矩阵
- mysql 二维表 查询_二维报表数据表设计
- Transformer 模型详解
- 30 天精通 RxJS (01):认识 RxJS
- 技术人写作和写代码一样重要
- vue请求数据传给子组件_vue.js基础,父组件如何向子组件传递数据「607」
- SIM900A 发送中英文短信
- 如何批量将mp3压缩变小?
- TDD、FDD是什么意思?
- Blue Coat 庖丁解牛 云安全势在必行
- android 定时器 误差,运动会计时器(PC+安卓)版本
- web网站搭建(nginx优化)二
- PHP - 使用file_get_contents下载远程文件到本地
- Kaggle泰坦尼克号比赛项目详解
- Linux中的高级存储管理
- 朗强:画面分割器投影拼接设备与原理
- echarts仪表盘式进度条
- 【Appium踩坑】Encountered internal error running command: Error executing adbExec.