1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| 1. 添加依赖 在你的 App 模块的 build.gradle 文件中添加 AutoSize 依赖:
gradle dependencies { implementation 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1' } 如果无法从 Jcenter 获取(注意 Jcenter 已于 2022 年 2 月后停止维护),可以尝试使用 JitPack 仓库:
gradle allprojects { repositories { ... maven { url "https://jitpack.io" } } } dependencies { implementation 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1' } 2. 配置全局设计图尺寸 在 AndroidManifest.xml 的 <application> 标签内添加 meta-data 配置你的设计图尺寸(单位通常为 dp):
xml <manifest> <application> <meta-data android:name="design_width_in_dp" android:value="360"/> <!-- 根据你的设计图宽度填写,例如 360 dp --> <meta-data android:name="design_height_in_dp" android:value="640"/> <!-- 根据你的设计图高度填写,例如 640 dp --> </application> </manifest> 这里的 value 值需要你根据设计师提供的设计图来定。常见做法是:
如果设计图是 1920x1080 px,通常除以 3(因为 1920/3=640, 1080/3=360),可配置为 360 dp (宽) x 640 dp (高)。
如果设计图是 1280x720 px,通常除以 2(1280/2=640, 720/2=360),同样可配置为 360 dp (宽) x 640 dp (高)。
关键在于:design_width_in_dp 和 design_height_in_dp 的单位必须是 dp。如果设计师只给了 px 尺寸,你需要换算:dp = px / (dpi / 160)。如果不知道设备 DPI,粗略地将 px 尺寸除以 2 或 3 也是一种办法。
3. 初始化 SDK 在你的自定义 Application 类的 onCreate() 方法中进行初始化:
kotlin class MyApp : Application() { override fun onCreate() { super.onCreate() // 初始化 AutoSize AutoSize.initCompatMultiProcess(this) // 处理多进程:cite[1]
// 可选:进行高级配置 AutoSizeConfig.getInstance() .setLog(false) // 设置是否打印日志,默认 true .setBaseOnWidth(true) // 默认 true,表示以宽度为基准适配。false 则以高度为基准:cite[2] .setUseDeviceSize(false) // 是否使用设备的实际尺寸做适配,默认为 false:cite[1] .setExcludeFontScale(false) // 是否屏蔽系统字体大小对 AndroidAutoSize 的影响, 默认为 false:cite[1] } } 别忘了在 AndroidManifest.xml 中通过 android:name 属性指定你的 Application 类。
🛠 高级用法与自定义配置 选择布局单位 AutoSize 支持两种类型的布局单位:
单位类型 单位 特点 适用场景 主单位 dp, sp 侵入性低,推荐在新项目中使用。会影响三方库页面、控件及系统控件的布局。 副单位 pt, in, mm 侵入性高,不会影响其他使用 dp 布局的三方库或系统控件。
⚠️ 注意事项 初始化时机:AutoSize 的初始化应在 Application 的 onCreate() 中尽早完成。
设计图尺寸:务必正确配置 design_width_in_dp 和 design_height_in_dp,这是准确适配的基础。
页面自定义:对于与全局设计图尺寸不一致或不需要适配的页面,记得使用 CustomAdapt 或 CancelAdapt 进行个性化配置。
布局预览:在 Android Studio 中布局时,你可能需要创建对应的模拟设备以获得更准确的预览效果。具体创建方法可参考官方文档或社区分享。
ProGuard 混淆:如果启用了代码混淆,请在混淆规则文件(proguard-rules.pro)中添加以下规则:
bash -keep class me.jessyan.autosize.** { *; } -keep interface me.jessyan.autosize.** { *; }
|