Android适配总结

mac2022-07-01  7

 1.dp与px的

密度类型代表的分辨率屏幕密度换算比例低密度(ldpi)240x320120  1dp=0.75px3中密度(mdpi)320x4801601dp = 1px4高密度(hdpi)480x8002401dp = 1.5px6超高密度(xhdpi)720x12803201dp = 2px8超超高密度(xxhdpi)1080x19204801dp = 3px14

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

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

屏幕密度图标大小mdpi48x48pxhdpi72x71pxxhdpi96x96pxxxhdpi144x144pxxxxhdpi192x192px

 

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文件夹找到相应的图片资源文件,然后将原有大像素的图片自动缩放成小像素的图片,于是大像素的图片照样可以在小像素分辨率的手机上正常显示       参考: Google的官方权威适配文档郭霖: Android官方提供的支持不同屏幕大小的全部方法Stormzhang:Android 屏幕适配鸿洋:Android 屏幕适配方案凯子: Android屏幕适配全攻略(最权威的官方适配指导)Carson_Ho: Android 屏幕适配:最全面的解决方案

转载于:https://www.cnblogs.com/ZeGod/p/10868388.html

最新回复(0)