武汉PHP培训
达内武汉民大中心

15271940953

热门课程

安卓APP项目级适配

  • 时间:2017-12-25 09:48
  • 发布:互联网
  • 来源:互联网

    目前安卓适配对安卓开发者来说是一个特别头疼的问题,那么多的机型,每次适配总有一些比较特殊的机型不适配.网络上也有一大堆的资料概念,看完之后还是不知道怎么适配,所以特写了这篇文章,来分享一下武汉PHP培训的经验.

    接下来我们先看一些概念,这也是适配必须要了解的(网上一大堆的资料我直接就复制粘贴啦)

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

    屏幕分辨率:是指在横纵向上的像素点数,单位是px,1px=1像素点,一般是纵向像素横向像素,如1280×720

    屏幕像素密度:是指每英寸上的像素点数,单位是dpi,即"dot per inch"的缩写,像素密度和屏幕尺寸和屏幕分辨率有关

    目前Android适配提供了五种的适配方式,我们一般都是混合结合着用,来达到完全是配的效果.

    接下来我们还要了解一下各个单位的含义(也直接粘贴啦)

    dip:Density Independent Pixels(密度无关像素)的缩写.以160dpi为基准,1dp=1px

    dp:同dip

    dpi:屏幕像素密度的单位,"dot per inch"的缩写

    px:像素,物理上的绝对单位

    sp:Scale-Independent Pixels的缩写,可以根据文字大小首选项自动进行缩放.Google推荐我们使用12sp以上的大小,通常可以使用12sp,14sp,18sp,22sp,最好不要使用奇数和小数.

    了解完之后那么我就开始结合项目说说我目前开发项目的适配,一般项目为了更好的适配,我们都是用match_parent,wrap_content,weight等属性在所有的设备上的都适配,还有采用.9图片的方式适配等.遵循以上规则之后,我们来说说具体的dp值的适配.

    一般情况下我们会发现在res目录下有很多的文件夹,drawable、mipmap、layout、values等等.一般情况drawable目录下放置的一些选择器,默认图片.我们还发现在drawable后面还多了很多的后缀,xhdpi、hdpi等等

    我们看到了有很多的文件夹,而且很多相似的文件名称,其实这些不同的文件夹就是为了适配.一般情况下我们会在drawable目录下放置一些我们项目中需要使用的图片.

    UI设计师切图的时候有时候会给我们切一套图,有时会给我们两套图,就看UI妹妹懒不懒了,当我们拿到切图之后放置到对应的drawable目录中,注意命名不同文件夹相同图片要一致

    当我们项目运行的时候,会根据设备分辨率的不同,去加载不同文件夹的图片.

    mipmap文件夹一般放置logo,或者是图标,所以,我们拿到图标的切图后分别放置到对应的文件夹中.
武汉PHP培训
    values文件夹一般我们放置颜色,国际化文件,style文件和dimens文件,这个dimens文件就是我们这个项目适配的关键,项目采用的values-wxxxdp的方式适配.

    values文件下分别放置不同的dimens文件,不同分辨率设备然后加载不同的文件夹.那么我们到底要怎么用呢,首先我们看一下-wxxxdp是什么意思.w代表width宽度,xxx是宽度为多大,单位为dp.也就是说,我们项目的适配是根据设备的最小宽度是配的.

    项目适配我们首先适配一种分辨率的手机进行完美适配,然后再计算出不同分辨率对应的值.项目模拟器使用的是Google的nexus5 Android6.0 dpi为420dp,分辨率为1920*1080.

    我们直接可以通过代码获取到屏幕像素密度的转换率 得出的是2.625,我们可以知道屏幕的最小宽度为1080,所以我们就可以求出最小的宽度为1080/2.625=411dp,所以设备会加载values-410dp的dimens.xml文件

    第二种方式是我们自己计算不通过代码的方式:

    最小宽度(dp)=屏幕最小宽度像素值(px)/((像素密度dpi)/160)我们也可以求出最小的宽度,而且得出的结果和我们通过代码的方式一模一样.

    我们知道了最小的宽度之后,就剩下填写这些dimen值.我们从UI拿到标注图之后,看看是720dp的切图还是1080p的如果是1080的切图,我们直接除以我们刚才得出的转换率,来获取到我们控件的宽度.720的也是同样的原理.

    当我们把第一个设备完美适配了,也就是我们的410dp已经完美适配了,那么我们可以根据360dp,480dp与410的比值,来得到对应文件的dp值,这样我们就兼容到了所有的设备.这样我们的适配就完成了,是不是Android适配没有那么难呢

    本篇文章是由武汉PHP培训为您呈现,希望给您带来更多更好的文章,喜欢的朋友们可以加微信公众号.

更多武汉PHP培训相关咨询,请扫描下方二维码

武汉PHP培训

上一篇:Java中对日期时间的处理
下一篇:详细谈谈一个App开发,从立项到上线全过程

能够提高PHP程序员效率的小妙招

想要学好PHP要怎么做

你学php准备做什么工作呢

PHP前景如何,现在学PHP还有前途吗?

选择城市和中心
贵州省

广西省

海南省