安卓日记——屏幕适配

作者: 饥渴计科极客杰铿 | 来源:发表于2016-08-13 19:06 被阅读557次

由于安卓的开源,各种设备的尺寸也是五花八门,我们无法做到任何设备都适配(特殊要求除外),所以只能针对目前比例最大的几种机型进行适配

首先普及几个概念

px是构成图片的最小单位,dpi是像素密度,对角线的像素除以长度,dip(也叫作dp)是密度无关像素,160dpi的设备上,1dip=1px。1dip 所等于的px和dpi成正比,也就是说在320dpi的设备上,1dip=2px。

sp可以根据文字大小首选项进行放缩,谷歌官方推荐使用sp作为字体的单位,应该使用12sp以上且为偶数作为字体大小,否侧可能看不清或者放缩时可能造成精度的丢失

名称 像素密度范围
mdpi 120dpi~160dpi
hdpi 160dpi~240dpi
xhdpi 240dpi~320dpi
xxdpi 320dpi~480dpi
xxxhdpi 480dpi~640dpi

支持各种屏幕尺寸的工作主要有以下几个方面

1. 使用wrap_contnet、math_parent、weight
2. 使用相对布局,禁止绝对布局
3. 使用限定符
4. 使用自动拉伸位图

1.使用wrap_contnet、math_parent、weight

在LinearLayout时,如果想两边的控件大小固定,中间的控件填充剩下的空间,可以设置中间控件的weight为1,其他两个不设或者设为0。
如果设置了weight最好把想高度或者宽度设为0,比如想横向用weight,那么就把宽度设为0,设为0后宽度或者高度和weight成等比例,weight越大宽度或者高度越大。
如果两个控件设置了math_parent和weight的话
weight计算出来的高度=原来宽度+剩余空间*weight所占百分比

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent" 
            android:layout_weight="1"
            android:text="button1"/>
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent" 
            android:layout_weight="2"
            android:text="button"/>
    </LinearLayout>

设L是屏幕宽度,Button1现在的宽度是2/3L,他原来的宽度应该是L,剩下的宽度是L-2L,然后它weight所占百分比是1/3

2/3L=L+(L-2L)*1/3

2. 使用相对布局,禁用绝对布局

如果是按照比例摆放的就用线性布局,如果要控件之间有特殊要求的就用相对布局

3.使用限定符

使用尺寸限定符,在values文件夹加上尺寸,然后应用可以根据不同设备尺寸选择,如values-480x320

4.使用自动拉伸

.9图左边和上边是拉伸区域,下边和右边是padding区域
在左边和上边设的点所在的线会被拉伸,下边和右边所设的线的交叉区域保持和圆图相同的padding
.9图要在保留图片的两侧点相同的点,线不要穿过图片,线上点会被拉伸,若某边不需要拉伸可以不设点

最后放一个鸿洋大大的彩蛋

Android AutoLayout全新的适配方式 堪称适配终结者

相关文章

  • Android官方文档阅读01-多屏幕适配&Fragme

    Supporting Different Screen 安卓多屏幕适配 传送门 安卓的屏幕适配以前一直是个重要的话...

  • 安卓日记——屏幕适配

    由于安卓的开源,各种设备的尺寸也是五花八门,我们无法做到任何设备都适配(特殊要求除外),所以只能针对目前比例最大的...

  • 安卓学习 --- 安卓屏幕适配

    这个知识点已经有很多人写过相应的博客,但是自己一直没有能够深入的理解,最近终于抽出时间,决定把这个问题彻底的梳理清...

  • Android实习生 —— 屏幕适配及布局优化

    目录 一、为什么要进行屏幕适配、对哪些设备进行适配? 在近几年的发展当中,安卓设备数量逐渐增长,由于安卓设备的开放...

  • 还在为Android屏幕适配烦恼吗?几步解决适配问题。

    一,前言AutoLayout AutoLayoutActivity是专为安卓手机屏幕适配而设计的开源...

  • 安卓屏幕分辨率

    话不多说,推荐几篇有关安卓屏幕适配文章,以后会不定时更新: 分辨率概念 Android屏幕适配(不同的屏幕分辨率和...

  • android屏幕适配

    Android屏幕适配 安卓设备非常多,碎片化严重,需要适配~ 屏幕尺寸:对角线 屏幕分辨率:横纵向上的像素点数单...

  • 安卓基础--屏幕适配

    由于HS项目需要,故基础暂停一下,转入安卓开发的最大难点--> 屏幕适配,机缘巧合看到慕课网上有一套布局的教学视频...

  • 安卓适配不同屏幕

    谷歌官方文档 安卓类的设备屏幕通常用尺寸和密度来描述,你应该保证你的app 安装在合适的尺寸和密度范围内。因此你应...

  • 前端页面适配

    为啥需要适配 安卓 IOS 各种不同的屏幕尺寸 适配方案 基本上都会设置 viewport 百分比:width, ...

网友评论

    本文标题:安卓日记——屏幕适配

    本文链接:https://www.haomeiwen.com/subject/uzfysttx.html