Android页面布局适配
引用了前人的学习后总结的简略版界面适配。
原链接:https://www.jianshu.com/p/12ce5c0a6163
使用第三方开源框架适配
Android第三方开源框架——AndroidAutoSize
屏幕适配框架AndroidAutoSize是根据今日头条屏幕适配方案优化的。 (今日头条的低成本屏幕适配终极方案)
在GitHub上也可以可以找到该开源项目。
1. 配置依赖(有更新的建议直接先看GitHub上面的源码)
<!--私有依赖-->
implementation 'me.jessyan:autosize:1.1.2'
<!--共有依赖-->
api 'me.jessyan:autosize:1.1.2'
2. 使用功能及其介绍
-
直接在Main.xml中添加配置即可
<!--适配海博TV--> <manifest> <application> <meta-data android:name="design_width_in_dp" android:value="540"/> <meta-data android:name="design_height_in_dp" android:value="960"/> </application> </manifest>
-
直接在Main.xml中添加这个配置是指的是整个项目的界面构造,如果有哪个界面或者活动是单独的size的话,让这个活动(或者是fragment)实现CustomAdapt接口,重写这个接口中的第一个方法就可以。
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; } }
如果有个界面不想要适配的话,也只需要实现CancelAdapt接口就行。
public class CancelAdaptActivity extends AppCompatActivity implements CancelAdapt { }
-
关于自定义view和一些顽固的界面适配的话,直接访问该网站有终极解决方案。