GItHub的官方地址:https://gitee.com/lcb1992/AndroidAutoSize
一.项目导入
implementation 'me.jessyan:autosize:1.2.1'
1.1manifest里面进行设置
文章图片
当设计图上的尺寸和以上尺寸一致时,到此配置已经全部完成,直接按照UI设计图照搬即可。
在使用主单位时,
design_width_in_dp
和 design_height_in_dp
的单位必须是 dp,计算公式 dp = px / (DPI / 160)
将 px 尺寸转换为 dp 尺寸,如果实在找不到设备的 DPI 那就直接将 px 尺寸除以 3 或者 2 。文章图片
二.进阶使用
文章图片
文章图片
【安卓|安卓适配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);
推荐阅读
- java|JetBrains IDE/Android Studio 翻译插件,支持中英互译、单词朗读。
- Python|APP开发用什么框架最好(这5大框架,开发者必备神器)
- 物联网|鸿蒙用户突破3亿,拳打谷歌安卓,脚踢苹果iOS
- 笔记|Android开发实战——计算器
- Android进阶之路|Android 面试准备进行曲-Handler源码/面试题