Android开发中布局与组件(一)—— 屏幕尺寸单位dp,px,sp的探究

Android中px、dip、dp和sp的区别 在Android开发中,为了应对不同设备的屏幕尺寸和密度,开发者需要使用合适的单位来定义UI元素。常用的单位包括px、dp和sp。px是实际像素单位,但由于设备像素密度不同,使用px可能导致显示不一致。dp(密度无关像素)是基于屏幕密度的抽象单位,确保在不同设备上布局尺寸一致。sp(可缩放像素)类似于dp,但还会根据用户的字体大小偏好进行缩放,适合用于字体大小。开发者应优先使用dp和sp单位,避免直接使用px,以确保应用在不同设备上的一致性。此外,为不同密度的设备提供适配的图片资源,并进行多设备测试,是确保 阅读详情

在Android开发中,常用的尺寸单位有 dp , px , sp 。当然还有其他的单位如 pt , mm 等,不过这些都是不常用,所以我们重点来探究一下 dp , px , sp 这三个常用的单位。

  • px
    英文 pixel 的缩写,即像素。无论屏幕密度为多少,一个像素单位对应屏幕上的一个像素,因此在 android开发中 并不推荐使用 px 为单位,因为它在不同分辨率的屏幕上显示的效果差别很大。
  • dp(或dip)
    英文 density-independent pixel 的缩写,意思为密度无关像素,可以把它理解为一个物理尺寸,即不管在什么分变率的屏幕上表现出的大小都是一致的,所以在设定视图尺寸的时候,推荐以 dp 座位视图的单位。
  • sp 英文 scale-independent pixel 的缩写,意思是与缩放无关的像素。它也是一种与密度无关的像素。通常使用 sp 作为字体大小的单位。

了解了这三种的单位的不同,我们来看看在实际应用中它们的效果:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:text="Text size is 30px"
        android:textSize="30px"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:text="Text size is 30dp"
        android:textSize="30dp"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:text="Text size is 30sp"
        android:textSize="30sp"/>


</LinearLayout>

在上面的代码中我们定义了三个分别使用不同单位的 TextView ,我们来看看在不同分辨率下它们的表现如何:

由上图可见, 以 dp 为单位的字体,无论在什么情况下表现的大小都相同,以 px 为单位的字体在不同分辨率下表现的大小不同,在高分辨率的屏幕上表现的更小一些,在低分辨率的屏幕上表现的更大一些。以 sp 为单位的字体只会随系统设置中字体的大小做一定的改变,而与屏幕的分辨率也没有关系。

希望可以帮到对尺寸的单位有疑惑的朋友。

PS:开发了一个制作个性二维码的应用,有兴趣的朋友可以试一试~ 创意二维码制作

EasyConversion:Android应用程序在度量单位之间进行转换 简易转换 Android应用程序在度量单位之间进行转换。 使用Android Studio开发。 单位转换支持: 公里-英里 英里-公里 英尺-毫米 毫米-英尺 立即下载

相关推荐

安卓开发中dpi等单位换算关系

dpi、dip、分辨率、屏幕尺寸、px、density关系以及换算

Android布局代码设置尺寸用px值还dp呢?

场景一、 new LinearLayout.LayoutParams(width, height); 这里的h就是LayoutParams中的width 和 height 要的就是px值 注意:通过下面这种方式拿到的值也是px值 如果dimen文件里写的是dp 到这里取出来后系统会换算成px int dimen = getResources().getDimensionPixelOffset(R.dimen.star_film_banner_height) 场景二、 ...

安卓开发-顺 的博客 1768

前端之Android:屏幕适配

在前几篇文章,我们大致了解了Android开发的一些常规模式和方法,在这个过程中其实我们已经接触到了屏幕适配方面的相关知识,但是并没有深入地讲解这些概念。这篇文章我们将分三个方面进行详细讲解。在Android中,定义组件尺寸的单位通常有dp和sp,那么它们跟我们经常使用的px有什么区别呢?px是Pixels的缩写,是常用的像素单位,对应的是屏幕上的点。移动设备的尺寸有很多种,它们的屏幕总像素也是不同的,使用px单位的组件尺寸会有不一致的情况。我们看个例子可以看出这个加号icon在分辨率较高,尺寸较大的屏幕上反而显得略小dp(density-independentpixel)是与密度无关的像素单

Android的组件宽高单位

Android的组件的常用宽高单位:px,pt,sp,dp。 px:像素,即在屏幕中可以显示的最小元素单位,分辨率越高的手机,屏幕的像素点就越多。因此,用像素px表示控件的大小,会随手机的分辨率不同,而显示控件大小不同。 pt:磅数,一般pt都会作为字体单位来显示,pt与px相似,在不同分辨率的手机,显示的字体大小也不同。 d...

wwwwwwl_的博客 1214

Android中的常用尺寸单位(dp、sp)快速入门教程

本文详细介绍了Android开发中常用尺寸单位的含义,重点讲解了sp与dp这两个尺寸单位的本质以及它们与px的换算公式,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

LabVIEW实战:基于DAQmx的实时正弦波生成、采集与波形图动态显示

本文详细介绍了如何使用LabVIEW和DAQmx驱动实现实时正弦波的生成、采集与动态显示。通过USB-6008数据采集卡,结合队列缓冲机制和动态波形图显示技术,构建了一个完整的信号处理系统。文章包含硬件连接、软件配置、任务设置及常见问题排查,适合LabVIEW初学者和硬件控制开发者参考。

weixin_30872337的博客 124

Android的px、dp、sp的区别

相信每个Android新手都会遇到这个问题,希望这篇帖子能让你不再纠结。下面说说Android的px、dp、sp的区别。

移动娱乐-im臭皮匠的博客 3431

MATLAB实战:Gardner定时同步算法实现与BER曲线优化指南

本文详细介绍了Gardner定时同步算法在MATLAB中的实现与优化方法,重点解析了算法原理、关键步骤实现及BER曲线绘制中的常见问题解决方案。通过优化参数设置和系统架构,提升数字通信系统的符号同步性能,为QPSK、QAM等调制系统提供实用参考。

weixin_29085865的博客 230

【Android】46、布局的单位和尺寸

本篇介绍布局的单位和尺寸

思跡的博客 1701

C#实现跨域访问共享文件夹的账号密码验证方案

本文详细介绍了在C#中实现跨域访问共享文件夹的账号密码验证方案。通过调用Windows API LogonUser函数,结合LOGON32_LOGON_NEW_CREDENTIALS登录类型,可安全模拟指定用户身份,有效解决工作组与域环境间的文件共享访问难题。文章提供了完整的工具类封装、多种实战场景示例及详细的错误排查指南。

pea55的博客 537

14、OpenClaw(龙虾助手)Skill 开发完整规范(2026最新版)

OpenClaw Skill 开发指南摘要: Skill 是 OpenClaw AI 助手的核心扩展机制,支持声明式(SKILL.md)和原生代码(JS/TS/Python)两种开发模式。声明式 Skill 通过 Markdown 定义触发条件和执行流程,适合简单业务;原生代码 Skill 提供完整编程能力,适合复杂场景。开发需遵循标准化项目结构,包含 SKILL.md(元数据)、manifest.json(权限声明)等文件,并严格处理错误和多系统适配。新版要求原生 Skill 必须声明文件、网络等权限,确

欢迎光临~知1而N的博客 1234

android工程师用的长度单位,Android开发中的长度单位详解

当我们在Android Studio或者Eclipse中编辑布局的时候,开发工具会提示我们使用dp、sp、px、in、pt、mm这六种单位。那么这六种单位各自代表什么含义,需要在什么地方使用呢?六种单位介绍px : 像素(pixels),即屏幕上的像素点,1px代表占据一个像素点。dp : 独立像素(device independent pixels),这是我们使用最多的一种单位,一般来说我们在布...

weixin_34983902的博客 819

【AI工具】免费获取各类AI大模型APIKEY的使用教程,以硅基流动+Deepseek为例

【AI工具】免费获取各类AI大模型APIKEY的使用教程,以硅基流动+Deepseek为例

funfan的博客 4261

Android:长度单位详解(px、dp、sp)

长度单位1、重要概念1.1 屏幕尺寸1.2 屏幕分辨率1.3 屏幕像素密度1.4 屏幕尺寸、分辨率、像素密度三者关系2、六种单位介绍2.1、dp和px的换算2.2、在代码中转换单位2.3、sp与dp的区别2.4、总结参考 1、重要概念 1.1 屏幕尺寸 含义:手机对角线的物理尺寸 单位:英寸(inch),1英寸=2.54cm 1.2 屏幕分辨率 含义:手机在横向、纵向上的像素点数总和 例子:1920x1080,即高度方向上有1920个像素点,宽度方向上有1080个像素点 单位:px(pixel),1px

JMW1407的博客 9413

AI视频生成工作流开发:从产品拆解到带货视频全流程实现

本文介绍了一套完整的AI视频生成工作流开发方案,该系统能够自动分析产品素材并生成9个标准化分镜,支持白底图智能替换,最终输出专业带货视频。系统基于Coze平台搭建,整合豆包大模型及多模态生成模型,实现从产品分析、脚本生成到视频合成的全流程自动化。关键模块包括产品特征提取、智能分镜分配、视觉内容生成和用户交互调整,支持手动优化提示词和输出结果。该方案采用模块化设计,结合多种AI模型协同工作,为电商视频制作提供高效解决方案。

huanghm88的专栏 383

29、Power BI 中行级安全(RLS)的实现与应用

本文详细介绍了在Power BI中实现行级安全(RLS)的方法,包括静态RLS和动态RLS的实现流程、适用场景及对比分析。通过具体业务场景,展示了如何创建安全角色、定义规则、验证角色、发布模型以及分配成员。此外,还探讨了更复杂的动态RLS场景,如基于父子层次结构的数据访问控制和从外部源获取用户信息的实现方式。文章最后总结了最佳实践建议及未来发展趋势,为企业在Power BI中高效、安全地实施数据访问控制提供了全面指导。

terraform7cloud的博客 195

2021年最全Android屏幕适配的度量单位px dp(dip) ppi dpi sp pt的区别(最详细,屏幕尺寸,屏幕分辨率,屏幕兼容,屏幕适配)

1 Android屏幕适配相关概念 1.1 屏幕尺寸(Screen Size) 屏幕尺寸是屏幕的对角线的长度,单位是英寸,1英寸等于2.54厘米。比如常见的屏幕尺寸有3.5、4.0、5.5等。 1.2 屏幕分辨率(Screen Resolution) 屏幕分辨率是指在横向和纵向上的像素点数、单位是px(pixel),1px等于1个像素点,一般设备的屏幕分辨率以“纵向像素x横向像素”来表示,例如1920x1080。 1.3 度量单位px、dp(dip)、ppi、dpi、sp、pt 1.3.1 像素px(pix

快乐李同学的博客 7761

AUTOSAR从入门到精通-诊断事件管理模块(DEM)(四)

在 Autosar 中,诊断事件是指在车辆电子系统中发生的特定事件,可以用于诊断和故障排除。DEM模块通过EventId和相关的EventName来表示每个诊断事件。诊断事件的状态代表了监控器的结果,DEM模块通过RTE或其他BSW模块从SW-C接收监控器的结果。DEM模块使用EventId来管理系统中每个诊断事件的状态,并对各个测试结果执行所需的操作,例如存储冻结帧/拓展帧。所有监控器和BSW模块使用EventId作为符号化的EventName来管理诊断事件。

getusushu的博客 1508

Android 常用布局单位区别(dp、sp、px、pt、in、mm

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2401_85969073的博客 1926

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android dp,sp,px,dpi关系讲解以及简单适配

本来不懵的,网上越百度,自己就越懵逼了 ▲ 基础概念 : dp:最常用的长、宽、margin、padding等的单位 sp:字体的单位,和dp差不多,区别是如果字体使用的sp为单位,那如果你手机字体调大了,那你app的字体会随之变大,如果用dp则不会变化。 px:像素 dpi:dots per inch,即每英寸上有多少个像素,也就是屏幕密度,具体计算下面写说 density:dens...

小白新人 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【Android】 dp与sp,加冕为王

DPI 是一个物理度量,表示每英寸长度内可以显示的像素点数。一个较高的 DPI 值意味着屏幕每英寸可以显示更多的像素,从而提供更清晰、更细腻的显示效果。DPI 的单位通常是像素/英寸(PPI,即 Pixels Per Inch)。在Android中,DPI 用于区分不同屏幕密度的设备。Android系统根据设备的DPI值将屏幕分为几个不同的类别,以便为不同的屏幕提供适当的资源和布局。

2303_79296612的博客 3035

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android Studio 中文字大小的单位详解

最佳实践是将文字样式定义在中:</</然后在布局中引用:style首选单位:始终使用sp作为文字大小的单位遵循标准:采用 Material Design 的文字大小阶梯样式分离:在styles.xml中定义文字样式而非硬编码响应式设计:为不同屏幕配置提供备用资源可访问性:确保文字大小可以随系统设置调整通过合理使用文字大小单位,可以创建出在各种设备上都能提供良好阅读体验的 Android 应用。记住,文字大小的选择不仅关乎美观,也直接影响应用的可访问性和用户体验。

百锦再的博客 1万+

Android Studio - 屏幕显示 - 像素单位:px、dp、sp

Android Studio - 屏幕显示 - 像素单位:px、dp、sp Android 中最常用的像素单位是 px(像素)、dp(安卓中的相对大小)、sp(用于设置字体)。 dp 与屏幕尺寸有关。一般来说,同样尺寸的屏幕以 dp 计量的分辨率是一样的,如一般手机屏幕分辨率会设置成 360 dp。 sp sp 原理与 dp 差不多,是专门用于设置字体大小的。手机设置中可以调整字体大小。以 sp 为单位,更改设置中字体大小,并不会改变 dp 的显示。 在 XML 布局文件中,为了让不同设备屏幕拥有统一的显

Moriafly的博客 2037

Android 常用布局单位区别(dp、sp、px、pt、in、mm)

一、简介 Android 在 UI 布局时经常用到一些单位,对单位混用直接会影响 UI 的显示,要想正确的在布局中使用每种单位就必须先真正的熟悉它。 UI 显示效果的影响因素:屏幕尺寸、屏幕密度、分辨率;而 android 手机种类又比较多,为了适应不同的设备,就要注意 drawable 和 layout 资源。 常用的单位有:dip(dp)、sp、px,不常用的单位: pt、in、mm。 在 布局中 应该尽量使用 dip(dp) 作为单位,定义 文字大小 则使用 sp,尽量少使用 px

卡尔特斯 4895

XML布局中的单位详解 —— 移动应用开发(安卓)

安卓 XML 布局支持的单位包括dpsppxinmmpt,以及特殊值和。dp是布局尺寸的首选,适用于按钮、边距等非文字元素。sp是文字大小的推荐单位,考虑用户字体设置。和提供动态适配能力,简化布局设计。pxinmmpt因适配性差或应用场景有限,日常开发中应尽量避免。通过合理选择单位,可以轻松构建在各种安卓设备上都美观一致的 UI。新建的移动应用开发赛项交流裙 831919441。

Geek极安云服官方博客 1348
上一篇: Android开发中自定义视图
下一篇: Android开发中布局与组件(二)—— padding 与 margin 的区别
ToBeTheOnlyOne
博客等级 码龄10年 9粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值