Android 屏幕适配

说Android得屏幕适配方案,先说下基础知识。

屏幕尺寸:屏幕的对角线,如一台小米电视49寸说的就是电视对角线长度是49寸(1英寸=2.54厘米)

 

分辨率: 1920×1080指纵向1920个像素点,横向1080个像素点

 

屏幕像素密度(DPI):指每一英寸长度中,可显示输出的像素个数,假如一英寸里面有160个像素,这个屏幕的像素密度就是160dpi,DPI的数字受屏幕尺寸和分辨率所影响,DPI可以通过计算所得

dp,dip,sp,px它们之间的关系

px:
构成图像的最小单位,其实就是像素单位即分辨率单位,比如我们通常说的手机分辨列表800*400都是px的单位。

dp/dip:
dip和dp是一个意思,都是Density Independent Pixels的缩写,即密度无关像素,规定以160dpi为基准,1dip=1px,如果密度是320dpi,则1dip=2px,以此类推。
也就是说当前我们设备的DP是由android给予的基础标准按比例进行翻译的,所以dp可以解决部分适配。

desity
密度,表示一个dp多少个像素。desity = dpi/160。

sp:同dp相似,sp作为字体大小单位,会随着系统的字体大小改变,而dp作为单位则不会。所以建议在字体大小的数值要使用sp作为单位。

mdpi,hdpi,xdpi,xxdpi,xxxdpi得区分

名称     像素密度范围     图标尺寸
mdpi   120dpi ~ 160dpi  48*48px
hdpi   160dpi ~ 240dpi  72*72px
xdpi   240dpi ~ 320dpi  96*96px
xxdpi  320dpi ~ 480dpi  144*144
xxxdpi 480dpi ~ 640dpi  192*192

说完了基础部分,现在说下如何做不同尺寸,不同分辨率得手机端得适配工作。

采用得是限定符(SW)得适配方案,因为android会通过获取当前手机屏幕得分辨率,来选择对应得value文件夹下得文件,那么就可以通过转换不同得分辨率下得value得数值得大小来做适配了。比如说。

300x400,5寸屏 的限定符SW=300PX/Desity=300PX/0.625=480
600x800,10寸屏 的限定符SW=600PX/Desity=600PX/0.625=960
所以就是SW480和SW960

 

 

可以看到在不同得分辨率下,做自动得转换,可以做到精准得适配,所以通过这种方法来适配size得大小是可行得。

使用这种方法,推荐使用一个插件 ScreenMatch,这个插件可以自动得生成SW文件。生成得截图如下。

Android 屏幕适配_第1张图片

  所以可以通过这种方法匹配市面上大部分得机型了。

另外在开发得时候也需要适配icon,那么解决方法如下。

android studio得icon是放在mipmap文件夹下得。

Android 屏幕适配_第2张图片

这个是android存放icon得位置得,google建议每个分辨率下防止一个相同尺寸得icon,设计得尺寸一般如下。

    密度	     建议尺寸
mipmap-mdpi	     48 * 48

mipmap-hdpi	     72 * 72

mipmap-xhdpi	     96 * 96

mipmap-xxhdpi	     144 * 144

mipmap-xxxhdpi	     192 * 192

 接着讲解适配图片放在drawable下如何适配。

当我们使用资源id来去引用一张图片时,Android会使用一些规则来去帮我们匹配最适合的图片。什么叫最适合的图片?比如我的手机屏幕密度是xxhdpi,那么drawable-xxhdpi文件夹下的图片就是最适合的图片。因此,当我引用android_logo这张图时,如果drawable-xxhdpi文件夹下有这张图就会优先被使用,在这种情况下,图片是不会被缩放的。但是,如果drawable-xxhdpi文件夹下没有这张图时, 系统就会自动去其它文件夹下找这张图了,优先会去更高密度的文件夹下找这张图片,我们当前的场景就是drawable-xxxhdpi文件夹,然后发现这里也没有android_logo这张图,接下来会尝试再找更高密度的文件夹,发现没有更高密度的了,这个时候会去drawable-nodpi文件夹找这张图,发现也没有,那么就会去更低密度的文件夹下面找,依次是drawable-xhdpi -> drawable-hdpi -> drawable-mdpi -> drawable-ldpi。 

所以最好的方法就是在每个分辨率下都设计一套对应得图片,但是通常公司得UI只会设计一套UI,所以建议设计一套高密度值得UI,因为高密度值得UI在低密度值得情况下会被自动缩小,对图片得质量没什么影响,但是如果一张图片被放大了,那么久会占用更多得内存。另外放置图片得最好位置是在drawable-xxhdpi,市面上得drawable-xxxhdpi得手机比较少,放在drawable-xxhdpi会比较合理。

总结。

size通过SW限定符来做适配

drawable通过f放在在高密度下得文件夹来做适配。

以下是demens.xml文件




    
    @dimen/dp_15

    
    
    -60dp
    -30dp
    -20dp
    -12dp
    -10dp
    -8dp
    -5dp
    -2dp
    -1dp
    0dp
    0.1dp
    0.5dp
    1dp
    1.5dp
    2dp
    2.5dp
    3dp
    3.5dp
    4dp
    4.5dp
    5dp
    6dp
    7dp
    8dp
    9dp
    10dp
    11dp
    12dp
    13dp
    14dp
    15dp
    16dp
    17dp
    18dp
    19dp
    20dp
    21dp
    22dp
    23dp
    24dp
    25dp
    26dp
    27dp
    28dp
    29dp
    30dp
    31dp
    32dp
    33dp
    34dp
    35dp
    36dp
    37dp
    38dp
    39dp
    40dp
    41dp
    42dp
    43dp
    44dp
    45dp
    46dp
    47dp
    48dp
    49dp
    50dp
    51dp
    52dp
    53dp
    54dp
    55dp
    56dp
    57dp
    58dp
    59dp
    60dp
    61dp
    62dp
    63dp
    64dp
    65dp
    66dp
    67dp
    68dp
    69dp
    70dp
    71dp
    72dp
    73dp
    74dp
    75dp
    76dp
    77dp
    78dp
    79dp
    80dp
    81dp
    82dp
    83dp
    84dp
    85dp
    86dp
    87dp
    88dp
    89dp
    90dp
    91dp
    92dp
    93dp
    94dp
    95dp
    96dp
    97dp
    98dp
    99dp
    100dp
    101dp
    102dp
    103dp
    104dp
    105dp
    106dp
    107dp
    108dp
    109dp
    110dp
    111dp
    112dp
    113dp
    114dp
    115dp
    116dp
    117dp
    118dp
    119dp
    120dp
    121dp
    122dp
    123dp
    124dp
    125dp
    126dp
    127dp
    128dp
    129dp
    130dp
    131dp
    132dp
    133dp
    134dp
    135dp
    136dp
    137dp
    138dp
    139dp
    140dp
    141dp
    142dp
    143dp
    144dp
    145dp
    146dp
    147dp
    148dp
    149dp
    150dp
    151dp
    152dp
    153dp
    154dp
    155dp
    156dp
    157dp
    158dp
    159dp
    160dp
    161dp
    162dp
    163dp
    164dp
    165dp
    166dp
    167dp
    168dp
    169dp
    170dp
    171dp
    172dp
    173dp
    174dp
    175dp
    176dp
    177dp
    178dp
    179dp
    180dp
    181dp
    182dp
    183dp
    184dp
    185dp
    186dp
    187dp
    188dp
    189dp
    190dp
    191dp
    192dp
    193dp
    194dp
    195dp
    196dp
    197dp
    198dp
    199dp
    200dp
    201dp
    202dp
    203dp
    204dp
    205dp
    206dp
    207dp
    208dp
    209dp
    210dp
    211dp
    212dp
    213dp
    214dp
    215dp
    216dp
    217dp
    218dp
    219dp
    220dp
    221dp
    222dp
    223dp
    224dp
    225dp
    226dp
    227dp
    228dp
    229dp
    230dp
    231dp
    232dp
    233dp
    234dp
    235dp
    236dp
    237dp
    238dp
    239dp
    240dp
    241dp
    242dp
    243dp
    244dp
    245dp
    246dp
    247dp
    248dp
    249dp
    250dp
    251dp
    252dp
    253dp
    254dp
    255dp
    256dp
    257dp
    258dp
    259dp
    260dp
    261dp
    262dp
    263dp
    264dp
    265dp
    266dp
    267dp
    268dp
    269dp
    270dp
    271dp
    272dp
    273dp
    274dp
    275dp
    276dp
    277dp
    278dp
    279dp
    280dp
    281dp
    282dp
    283dp
    284dp
    285dp
    286dp
    287dp
    288dp
    289dp
    290dp
    291dp
    292dp
    293dp
    294dp
    295dp
    296dp
    297dp
    298dp
    299dp
    300dp
    301dp
    302dp
    303dp
    304dp
    305dp
    306dp
    307dp
    308dp
    309dp
    310dp
    311dp
    312dp
    313dp
    314dp
    315dp
    316dp
    317dp
    318dp
    319dp
    320dp
    321dp
    322dp
    323dp
    324dp
    325dp
    326dp
    327dp
    328dp
    329dp
    330dp
    331dp
    332dp
    333dp
    334dp
    335dp
    336dp
    337dp
    338dp
    339dp
    340dp
    341dp
    342dp
    343dp
    344dp
    345dp
    346dp
    347dp
    348dp
    349dp
    350dp
    351dp
    352dp
    353dp
    354dp
    355dp
    356dp
    357dp
    358dp
    359dp
    360dp
    365dp
    370dp
    400dp
    410dp
    422dp
    472dp
    500dp
    600dp
    640dp
    720dp

    
    6sp
    7sp
    8sp
    9sp
    10sp
    11sp
    12sp
    13sp
    14sp
    15sp
    16sp
    17sp
    18sp
    19sp
    20sp
    21sp
    22sp
    23sp
    24sp
    25sp
    28sp
    30sp
    32sp
    34sp
    36sp
    38sp
    40sp
    42sp
    48sp


 

你可能感兴趣的:(Android)