zoukankan      html  css  js  c++  java
  • Android适配总结

     1.dp与px的

    密度类型 代表的分辨率 屏幕密度 换算 比例
    低密度(ldpi) 240x320 120   1dp=0.75px 3
    中密度(mdpi) 320x480 160 1dp = 1px 4
    高密度(hdpi) 480x800 240 1dp = 1.5px 6
    超高密度(xhdpi) 720x1280 320 1dp = 2px 8
    超超高密度(xxhdpi) 1080x1920 480 1dp = 3px 14

    在Android中,规定以160dpi(即屏幕分辨率为320x480)为基准:1dp=1px,一般是以xhdpi较多,即1dp = 2px;

    2.图标的各个屏幕密度的对应尺寸

    屏幕密度 图标大小
    mdpi 48x48px
    hdpi 72x71px
    xhdpi 96x96px
    xxhdpi 144x144px
    xxxhdpi 192x192px

    3.布局适配:

      ①layout-large命名布局文件,只适用于3.2之前版本;

      ②使用了layout-sw 600dp的最小宽度限定符,即无论是宽度还是高度,只要大于600dp,就采用layout-sw 600dp目录下的布局;

      ③如果适配3.2之前的和3.2之后的版本,因为布局一样,只是名字不一样,所以用@layout/main_twopanes,就避免了重复定义布局文件的情况

      ④values-sw600dp-land (大屏、横向、双面板、宽-Andorid 3.2版本后)、res/values-sw600dp-port/layouts.xml(大屏、纵向、单面板带操作栏-Andorid 3.2版本后)

      ⑤通过使用"wrap_content"、"match_parent"和"weight"来替代硬编码的方式定义视图大小&位置

    4.图片资源

       ①必须要使用.9.png后缀名,因为系统就是根据这个来区别nine-patch图片和普通的PNG图片的;

           ②如果我们为 xhdpi 设备生成了 200x200 px尺寸的图片,就应该按照相应比例地为 hdpi、mdpi 和 ldpi 设备分别生成 150x150、100x100 和 75x75 尺寸的图片

      ③如果增加其他的资源会更APK体积变大,就只采用xhdpi的图片资源;

      ④图片资源放到drawable-v24里面,导致7.0以下不能找到图片 不同的drawable文件夹用于为设备兼容性和不同的Android版本提供不同的屏幕密度。同理mipmap-anydpi-v26  API 26(安卓8.0)也是一样的道理,注意不同的文件对应的不同的版本

    5.界面流程匹配 

    • 确定当前布局
    • 根据当前布局做出响应
    • 重复使用其他活动中的片段
    • 处理屏幕配置变化

    6.Android 加载资源过程  

        SDK检测到你手机的分辨率是320x480(dpi=160),会优先到drawable-mdpi文件夹下找对应的图片资源;但假设你只在xhpdi文件夹下有对应的图片资源文件(mdpi文件夹是空的),那么SDK会去xhpdi文件夹找到相应的图片资源文件,然后将原有大像素的图片自动缩放成小像素的图片,于是大像素的图片照样可以在小像素分辨率的手机上正常显示
     
     
     
    参考:
    天助自助者
  • 相关阅读:
    Java Web工作原理
    Java——入门“HelloWorld”
    Java——介绍
    vscode给 vue 项目 添加 eslint 验证提示遇到的细节问题
    使用全局变量,当多个线程同时修改静态属性第一季
    自编验证码图片识别程序 自定义的FloodFill函数
    nginx卸载ssl django明文
    nginx 7层全转发
    JAVA Socket入门详解(基本用法与代码实现)
    小白进入公司究竟有哪些不同?学生一定要看!
  • 原文地址:https://www.cnblogs.com/ZeGod/p/10868388.html
Copyright © 2011-2022 走看看