android屏幕分辨率
‘壹’ android 屏幕适配基础知识
最近参考 今日头条算法 ,优化了项目的屏幕适配策略。下面是适配过程中的一些心得,部分内容来源于网络。
举个例子:屏幕分辨率为:1920*1080,屏幕尺寸为5吋的话,那么dpi为440。
dp就是密度自适应的像素。1dp表示 在dpi为160的设备上的一颗像素
px与dp的换算公式px = dp * (dpi / 160),很显然,由于相同分辨率但不同屏幕大小的设备dpi是不同的,导致px和dp的基本不存在一个固定的换算关系,为了方便屏幕适配,Android设置了6个通用的密度,换算px与dp时采取通用密度计算,而非设备实际的密度。
以下为6种通用密度,以及其最小的分辨率
得到上面通用密度之后,我们换算dp与px多了一种简便方式。Android系统用mdpi(160dpi)作为基准,此时1px = 1dp,又有px = dp * (dpi / 160),所以我们可以很容易的得到以下换算:
sp在dp的基础上引入了scaleFactor变量,一般用于字号,可在系统设置里调大。
同一张图片放到以上4个分辨率类型的文件夹里,在页面上呈现的效果如下
实际呈现的算法为: 图片尺寸 * 系统density / 文件夹 density
因为图片尺寸、系统density都是固定的,因此图片最终尺寸表现为: 图片放的位置越"low",呈现的尺寸越大
比如 图片宽度200px,系统 density =3,则图片宽度
下面是详细的解释
我们知道,不管在布局文件中填写的是什么单位,它最后都会被系统转化为 px。系统的转换算法如下:
可以看到 px = dp*density 。
横向适配的最终目的:让100dp的宽度,在各个机型上,在屏幕上所占的 比例相同 。
其核心算法是px = dp* density。通过修改density这个变量,我们可以让px和画布标注的px值一致,达到适配的效果。
美工同学提供的画布宽度为 750px(iphone6) ,开发中,我们对这些px标注 除2 得到dp值进行使用。
那么density如何求出呢? 根据系统算法px = dp*density,反推 density =px/dp
拿横向适配画布, density对于不同分辨率的手机修改后如下:
375是我们拿UI画布横向分辨率750/2得出。
‘贰’ 安卓11屏幕分辨率在哪设置
方法如下:
1.第一步,点击进入手机桌面上的“设置”
2.第二步,选择“显示”选项,进入“显示”界面。
3.第三步,找到“屏幕分辨率”选项,点击进入。
4.第四步,可以开启“智能分辨率”开关,它会根据需要自动降低分辨率,有助于省电。
5.第五步,或者在自定义分辨率中切换成HD+或者FHD+
6.以上这些步骤就完成了所有操作。
‘叁’ 安卓手机屏幕分辨率怎么调整
安卓手机屏幕分辨率调整方法:
首先手机必须获得ROOT权限,接着你需要确定手机的显示density和分辨率,desity的意思就是密度,在安卓系统中,desity是一个非常重要的显示参数。如果density设置不当,比如density设置过高,可能会使字体和其他一些UI显示得很小,而如果高分屏设置density过低,也可能会使字体和其他UI显得过大,甚至影响App兼容。
‘肆’ android手机主流屏幕分辨率是多少
主要是1080P,即分辨率为1920*1080。也有部分手机上到2K,即2560*1440
这个主要看屏幕材质
lcd的话1080p显示是没有什么大的问题的,也有部分高端手机上2K屏幕,显示更加细腻
oled的屏幕尤其是amoled的屏幕在1080P的分辨率下由于像素点排列原因在显示字体的时候会有彩边现象,但是在2K分辨率下彩边现象就会好很多,基本可以忽略不计,所以采购屏幕材质为amoled的手机的时候最好采购2k分辨率的。
此外还有一个个例就是索尼,它在自己旗舰机Xperia Z5 Premiu和Xperia XZ Premium上面使用了4K分辨率的显示屏,显示效果更加细腻。
最后还是提醒一点,手机分辨率越高手机的耗电就越高,谨慎购买超高分辨率的手机。
‘伍’ 手机分辨率怎么调 安卓手机修改屏幕分辨率教程
方法如下:
1、以华为P10为例,打开手机“设置”应用;如图所示
https://imgcdn.idongde.com/qa/2020/06/24/10/1592964532860497
2、接下来在设置界面选择“显示”选项;如图所示
https://imgcdn.idongde.com/qa/2020/06/24/10/1592964532945234
3、接下来在显示界面选择“屏幕分辨率”选项;如图所示
https://imgcdn.idongde.com/qa/2020/06/24/10/1592964533199567
4、接下来在屏幕分辨率界专面取消勾选“智能分辨率”选项;如图所示
https://imgcdn.idongde.com/qa/2020/06/24/10/1592964533504342
5、这时可以看到默认分辨率变成了“FHD”的清晰属度;如图所示
https://imgcdn.idongde.com/qa/2020/06/24/10/1592964533566181
6、接下来选择想要设置的分辨率,设置好以后屏幕分辨率就调好了;如图所示
https://imgcdn.idongde.com/qa/2020/06/24/10/1592964534682757
(5)android屏幕分辨率扩展阅读:
分辨率160×128表示水平方向含有像素数为160个,垂直方向像素数128个。屏幕尺寸一样的情况下,分辨率越高,显示效果就越精细和细腻。
一块方形的屏幕横向有多少个点,竖向有多少个点,相乘之后的数值就是这块屏幕的像素(数码相机的像素也是这么乘积出来的)。但是为了方便表示屏幕的大小,通常用横向像素×竖向像素的方式来表示,例如电脑屏幕中很常见的1024×768像素,以及手机屏幕中很常见的240×320像素。
‘陆’ Android 屏幕适配
1: dp: android 尺寸的基本单位。 在不同的分辨率的手机里面,1dp对应着不同数量的px, 这样就实现了dp定义一个控件大小的时候,在不同分辨率手机里表现出相应大小的像素值。
2: 屏幕分辨率: 1080下160, 表示宽度有1080个像素点而高度有2160个像素点。常见的分辨率有320x480, 480x800, 720x1280, 1080x1920等。
3: 屏幕尺寸: 以寸为单位, Android设备对角线的长度
4: 像素密度: 每英寸的像素点
5: 屏幕尺寸, 分辨率,像素密度 三者之间的关系:
密度(dpi)= √(宽2 + 高2)/屏幕尺寸
6: px:像素,是屏幕上显示数据的最基本的点
7: dpi:屏幕像素密度,每英寸上的像素点数
8: sp:与dp类似,通常用于指定字体的大小,当用户修改手机显示的字体时,字体大小会随之改变。
1: dp适配方案: Android自带的原始的适配方案, 在不同的分辨率手机里面表现出相应大小的像素点。
缺点: Android的碎片化严重, 如果生产厂家没有根据屏幕尺寸、分辨率和像素密度的关系来规则定义, 或者出一些乱七八糟的屏幕大小,这样的适配方案就不在适合了。
2: 宽高限定符:枚举所有的屏幕宽高像素值,根据等比缩放去适配。如果没有找到对应的屏幕, 则取默认的。 目前这种方案已经被弃用。
缺点:
1: 占用资源大,会增加APK的体积。
2: 容错机制大需要精准命中资源文件才能适配,比如1920x1080的手机就一定要找到1920x1080的限定符,否则就只能用统一的默认的dimens文件了。而使用默认的尺寸的话,UI就很可能变形。
3:AndroidAutoLayout适配方案(停止维护)
4: SW限定符适配方案:(smallestWidth最小宽度适配)
Android 会去识别屏幕可用高度或者宽度的最小尺寸的dp值。然后根据识别到的结果去对应的资源文件里面去找寻相应的结果。
如何生成:ScreenMatch插件
此方案跟宽高限定的适配方案相比,有很好的容错机制, 如果没有找到对应的适配宽度, 那么会在vlues文件里面去找跟他最接近的宽度。
5:今日头条适配方案:
1>: px 转 dp 的公式 dp = px / density.不管我们设定的单位是什么, 最终我们都会将这些单位长度转化为px的。density就是他们的转化比, 所以,动态改变这个转化比也是可以达到我们适配屏幕的目的的。
2>: 通过修改density值,强行把所有不同尺寸分辨率的手机的宽度dp值改成一个统一的值(在清单文件中定义),这样就解决了所有的适配问题。
3>: Density = 当前设备屏幕总宽度(单位为像素)/ 设计图总宽度(单位为 dp) ;
4>:引入了AndroidAutoSize屏幕适配框架:
https://github.com/JessYanCoding/AndroidAutoSize
最后, 最重要的................
点赞 点赞 点赞, 不重要的事情也就说3遍......
‘柒’ Android中分辨率,DPI,DP与PX对应关系
分辨率就是手机屏幕的像素点数。一般为屏幕的“宽×高”,例如分辨率有720×1280的手机设备,表示此屏幕在宽度方向有720个像素点,在高度方向有1280个像素点。
按屏幕对角测量的实际物理尺寸。为简便起见,Android 将所有实际屏幕尺寸分组为四种通用尺寸:小、 正常、大和超大,以英寸(inch)为单位。例如有个5寸的手机设备,是指对角线的尺寸,5寸×2.54厘米/寸=12.7厘米。
就是每英寸的像素点数,数值越高当然显示越清晰,通常 与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域的像素较少。
在定义 UI 布局时应使用的虚拟像素单位,用于以密度无关方式表示布局维度 或位置。
密度无关像素等于 160 dpi 屏幕上的一个物理像素,这是 系统为“中”密度屏幕假设的基线密度。在运行时,系统 根据使用中屏幕的实际密度按需要以透明方式处理 dp 单位的任何缩放 。dp 单位转换为屏幕像素很简单: px = dp * (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等于 1.5 物理像素。在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。
大多数情况下,确保应用中的屏幕独立性很简单,只需以适当的密度独立像素( dp 单位)或 "wrap_content" 指定所有 布局尺寸值。系统然后根据适用于当前屏幕密度的缩放比例适当地缩放位图可绘制对象,以 适当的大小显示。
如上表所示,现在我们在mdpi下设计了一个48x48的应用图标,那么在ldip下大小缩小0.75倍为36x36,在hdip下放大1.5倍为72x72,在xhdpi下放大2倍为96x96,在xxhdpi下放大3倍为144x144,在xxxhdpi下放大4倍为192x192.
android对于不同dpi设备提供了5个目录存放图片,使开发人员根据实际需要对图片适配。一般情况需要UI根据一种DPI密度、或分辨率的设备设计UI,根据不同dpi的比例出图,一般需要xhdpi、xxhdpi两套图,即2x、3x图。
计算相关公式:
px = dpValue * density + 0.5f;
dp = pxValue / density + 0.5f;