安卓适配AutoSize详解
安卓 详解 适配 autosize
2023-06-13 09:12:00 时间
大家好,又见面了,我是你们的朋友全栈君。
GItHub的官方地址:https://gitee.com/lcb1992/AndroidAutoSize
一.项目导入
implementation 'me.jessyan:autosize:1.2.1'
1.1manifest里面进行设置
<manifest>
<application>
<meta-data
android:name="design_width_in_dp"
android:value="360"/>
<meta-data
android:name="design_height_in_dp"
android:value="640"/>
</application>
</manifest>
当设计图上的尺寸和以上尺寸一致时,到此配置已经全部完成,直接按照UI设计图照搬即可。
在使用主单位时,design_width_in_dp
和 design_height_in_dp
的单位必须是 dp,计算公式 dp = px / (DPI / 160)
将 px 尺寸转换为 dp 尺寸,如果实在找不到设备的 DPI 那就直接将 px 尺寸除以 3 或者 2 。
二.进阶使用
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)
* <p>
* 返回的设计尺寸, 单位 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);
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134928.html原文链接:https://javaforall.cn
相关文章
- 【说站】安卓超级点击器高级版v5.0 屏幕自动点击
- 安卓设备数据转移到ios设备
- webview长按复制_安卓手机怎么复制图片上的文字
- [VB开发安卓]B4A 二维码,条形码,PDF417码识别和创建,界面仿微信早期版本扫一扫
- 【未完待续】【原创】有趣的Shell命令以及安卓底层内容
- 安卓十年进化史:主屏幕和导航栏的演变详解手机开发
- 安卓模拟器详解程序员
- 开发者眼中的鸿蒙:不是安卓换皮,和之前的国产系统都不一样
- 小米王腾:安卓平板生态不好 很多APP适配都不行
- 互传MacOS与安卓跨平台数据互传(macos安卓)
- 将你的安卓手机屏幕投射到 Linux
- #新闻拍一拍# 银河麒麟桌面操作系统 V10 发布:Win7 般体验、兼容安卓生态
- MySQL工具revolution 给安卓带来的变革(mysql工具安卓)
- 给安卓平板换装Linux:实现让它跑起来(安卓平板刷linux系统)
- 火山安卓系统攻克MSSQL连接瓶颈(火山安卓连接mssql)