Android 屏幕适配

情到浓时终转凉″ 提交于 2020-01-14 04:46:03

 见解:

------> https://blog.csdn.net/zhaokaiqiang1992/article/details/45419023  ;这一篇网文内容详尽 

        对于鸿洋的百分比适配,由于目前无法覆盖所有分辨率,对于现在也没有全备的测试,问题可能会比较多,所以目前不采用。如果使用,需要进一步注意的是,对于有虚拟按键的手机,需要在该分辨率下,还需要创建一套除去NavigationBar高度后分辨率的适配方案。比如1920 x 1080 的手机,虚拟按键高度为170px。针对该款手机,既要创建values-1920x1080 ,还需要创建values-1750x1080。
       针对目前的开发进行适配,做好网文中主要介绍的内容即可。以下内容方便查阅,直接粘贴出来:

屏幕尺寸

屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米

比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等

屏幕分辨率

屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,如1960*1080。

屏幕像素密度

屏幕像素密度是指每英寸上的像素点数,单位是dpi,即“dot per inch”的缩写。屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。

dp、dip、dpi、sp、px

px我们应该是比较熟悉的,前面的分辨率就是用的像素为单位,大多数情况下,比如UI设计、Android原生API都会以px作为统一的计量单位,像是获取屏幕宽高等。

dip和dp是一个意思,都是Density Independent Pixels的缩写,即密度无关像素,上面我们说过,dpi是屏幕像素密度,假如一英寸里面有160个像素,这个屏幕的像素密度就是160dpi,那么在这种情况下,dp和px如何换算呢?在Android中,规定以160dpi为基准,1dip=1px,如果密度是320dpi,则1dip=2px,以此类推。

假如同样都是画一条320px的线,在480*800分辨率手机上显示为2/3屏幕宽度,在320*480的手机上则占满了全屏,如果使用dp为单位,在这两种分辨率下,160dp都显示为屏幕一半的长度。这也是为什么在Android开发中,写布局的时候要尽量使用dp而不是px的原因。

而sp,即scale-independent pixels,与dp类似,但是可以根据文字大小首选项进行放缩,是设置字体大小的御用单位。

mdpi、hdpi、xdpi、xxdpi

其实之前还有个ldpi,但是随着移动设备配置的不断升级,这个像素密度的设备已经很罕见了,所在现在适配时不需考虑。

mdpi、hdpi、xdpi、xxdpi用来修饰Android中的drawable文件夹及values文件夹,用来区分不同像素密度下的图片和dimen值。

那么如何区分呢?Google官方指定按照下列标准进行区分:

名称像素密度范围 像素转换分辨率
mdpi 120dpi~160dpi 1dp = 1px 320 x 480
hdpi 160dpi~240dpi 1dp = 1.5px 480 x 800
xhdpi 240dpi~320dpi 1dp = 2px 720 x 1280 (720P)
xxhdpi 320dpi~480dpi 1dp = 3px 1920 x 1080 (1080P)
xxxhdpi 480dpi~640dpi 1dp = 4px 3840 x 2160 (4K)


 
 
 
 
 
 
 
 
 
收集适配文章比较全的  ---- 》https://www.jianshu.com/p/ec5a1a30694b
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!