安卓设备屏幕分辨率适配

需求

适配1.83寸的手表屏幕

屏幕分辨率为240px*284px

dpi=203.18

计量单位

xml 复制代码
px (Pixels): 其实就是像素单位,是屏幕上最小可见的单元,比如我们通常说的手机分辨列表800*400都是px的单位(px 的单位是 像素,dpi 的单位是 像素/英寸)
sp : 同dp相似,还会根据用户的字体大小偏好来缩放
dp (Device Independent Pixels(设备独立像素)): 虚拟像素,屏幕无关的像素单位,在不同的像素密度的设备上会自动适配,以确保在不同屏幕上显示的大小相对一致。
dip: 同dp
dpi(Dots Per Inch):是指每英寸的像素点数,DPI值越高,图像越清晰,像素密度越大。
mm(Millimeters):毫米是一种度量长度的单位,它代表屏幕上的实际物理长度。
pt(Points):点是一种用于印刷和排版的单位,通常用于描述字体的大小。

计算公式

px和dp:

px = dp * (dpi / 160)

在安卓开发中,dp(Density Independent Pixels)和px(Pixels)是用来表示长度或距离的单位。下面是dp和px之间的转换关系:

dp转px: px = dp * (dpi / 160) 其中dpi是屏幕的像素密度,通常可以通过获取屏幕密度DPI的方式获得。

px转dp: dp = px / (dpi / 160)

在实际开发中,推荐使用dp作为单位来定义布局和尺寸,因为dp是与屏幕密度无关的单位,可以在不同密度的屏幕上呈现一致的大小和比例。而px则是实际的像素值,会随着屏幕密度的不同而有所变化。

dpi计算:

DPI的计算公式如下: DPI = √(分辨率宽度^2 + 分辨率高度^2) / 屏幕尺寸

上面的dpi=203

将提供的数值代入公式进行计算: DPI = √(240^2 + 284^2) / 1.83 ≈ 203

其实就是勾股定理:求对角的长度除以屏幕尺寸(也是对角线长度)

  • dp转换成px:px = dp * (屏幕的像素密度 / 160)
  • px转换成dp:dp = px / (屏幕的像素密度 / 160)
  • mm转换成px:px = mm * (屏幕的像素密度 / 25.4)
  • px转换成mm:mm = px / (屏幕的像素密度 / 25.4)
  • pt转换成px:px = pt * (屏幕的像素密度 / 72)
  • px转换成pt:pt = px / (屏幕的像素密度 / 72)

Android 屏幕适配之框架(AndroidAutoSize)(今日头条)适配

github地址

AndroidAutoSize的使用

  • .添加Gradle配置

implementation 'me.jessyan:autosize:1.2.1'

添加AndroidManifest配置

xml 复制代码
<application
	<meta-data
	     android:name="design_width_in_dp"
	     android:value="240"/>
	 <meta-data
	     android:name="design_height_in_dp"
	     android:value="284"/>
</application>

现在就可以在布局文件中直接使用dp了,会自动适配屏幕分辨率

相关推荐
雨白23 分钟前
嵌套 ScrollView 滑动冲突实战:实现内部优先滚动
android
阿pin29 分钟前
Android随笔-IntentService详解(了解)
android·intentservice
海天鹰1 小时前
content://com.android.externalstorage.documents/document/primary%3A
android
帅帅的记忆2 小时前
uniapp项目调用原生android studio的sdk文件(即aar文件)
android·uni-app·android studio
用户69371750013843 小时前
Kimi K3 综合能力处于全球第一梯队
android·前端·后端
阿pin3 小时前
Android随笔-BroadcastReceiver
android·broadcast
pengyu4 小时前
【Kotlin 协程修仙录 · 金丹境 · 后阶】 | 异常防火墙:supervisorScope 与异常隔离的终极奥义
android·kotlin
cheng2191015 小时前
Cocos Creator打包安卓并支持 Android 16KB 页面大小
android
夏沫琅琊5 小时前
Jetpack Compose + 原生 PDF API 从零搭一个 Android 工具应用 (一)
android·pdf·kotlin
聚美智数6 小时前
常见疾病查询-疾病症状—疾病介绍-疾病大全-疾病治疗查询API接口介绍
android·java·数据库