安卓|安卓适配AutoSize详解

GItHub的官方地址:https://gitee.com/lcb1992/AndroidAutoSize
一.项目导入

implementation 'me.jessyan:autosize:1.2.1'

1.1manifest里面进行设置

安卓|安卓适配AutoSize详解
文章图片

当设计图上的尺寸和以上尺寸一致时,到此配置已经全部完成,直接按照UI设计图照搬即可。
在使用主单位时,design_width_in_dpdesign_height_in_dp 的单位必须是 dp,计算公式 dp = px / (DPI / 160) 将 px 尺寸转换为 dp 尺寸,如果实在找不到设备的 DPI 那就直接将 px 尺寸除以 3 或者 2 。
安卓|安卓适配AutoSize详解
文章图片

二.进阶使用 安卓|安卓适配AutoSize详解
文章图片

安卓|安卓适配AutoSize详解
文章图片

【安卓|安卓适配AutoSize详解】安卓|安卓适配AutoSize详解
文章图片

public class CustomAdaptActivity extends AppCompatActivity implements CustomAdapt {/** * 是否按照宽度进行等比例适配 (为了保证在高宽比不同的屏幕上也能正常适配, 所以只能在宽度和高度之中选择一个作为基准进行适配) * * @return {@code true} 为按照宽度进行适配, {@code false} 为按照高度进行适配 */ @Override public boolean isBaseOnWidth() { return false; }/** * 设计图尺寸为 1080px * 1920px, 高换算成 dp 为 960 (1920px / 2 = 960dp) * * 返回的设计尺寸, 单位 dp * {@link #getSizeInDp} 须配合 {@link #isBaseOnWidth()} 使用, 规则如下: * 如果 {@link #isBaseOnWidth()} 返回 {@code true}, {@link #getSizeInDp} 则应该返回设计图的总宽度 * 如果 {@link #isBaseOnWidth()} 返回 {@code false}, {@link #getSizeInDp} 则应该返回设计图的总高度 * 如果您不需要自定义设计图上的设计尺寸, 想继续使用在 AndroidManifest 中填写的设计图尺寸, {@link #getSizeInDp} 则返回 {@code 0} * * @return 单位 dp */ @Override public float getSizeInDp() { return 667; } }

三.配置其他
  • 可以在 pt、in、mm 这三个冷门单位中,选择一个作为副单位,副单位是用于规避修改 DisplayMetrics#density 所造成的对于其他使用 dp 布局的系统控件或三方库控件的不良影响,使用副单位后可直接填写设计图上的像素尺寸,不需要再将像素转化为 dp
AutoSizeConfig.getInstance().getUnitsManager() .setSupportDP(false) .setSupportSP(false) .setSupportSubunits(Subunits.MM);


    推荐阅读