安卓适配AutoSize详解

GItHub的官方地址:https://gitee.com/lcb1992/AndroidAutoSize

一.项目导入

 implementation 'me.jessyan:autosize:1.2.1'

1.1manifest里面进行设置


                
        
                   
                

安卓适配AutoSize详解_第1张图片

当设计图上的尺寸和以上尺寸一致时,到此配置已经全部完成,直接按照UI设计图照搬即可。

在使用主单位时,design_width_in_dpdesign_height_in_dp 的单位必须是 dp,计算公式 dp = px / (DPI / 160) 将 px 尺寸转换为 dp 尺寸,如果实在找不到设备的 DPI 那就直接将 px 尺寸除以 3 或者 2 。

安卓适配AutoSize详解_第2张图片

二.进阶使用

安卓适配AutoSize详解_第3张图片

安卓适配AutoSize详解_第4张图片

安卓适配AutoSize详解_第5张图片

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);

 

你可能感兴趣的:(安卓,AutoSize,安卓适配,meta-data,dp,px)