在开发中我们经常会用到屏幕适配,因为市场上的手机型号实在太多了,这里我用到的适配方案是今日头条的屏幕适配,个人觉得用起来很方便,下面就来记录下使用方法:
1、在app的build.gradle里加入下面配置
//屏幕适配
implementation 'me.jessyan:autosize:1.1.2'
2、在AndroidManifest.xml里配置:(基准设计尺寸单位dp)
<meta-data
android:name="design_width_in_dp"
android:value="360" />
<meta-data
android:name="design_height_in_dp"
android:value="640" />
通过上面两步就可以在整个应用中完成屏幕适配了,是不是很方便。
(1)如果我们某个页面不想做屏幕适配,那么这个页面可以单独处理一下,通过implements CancelAdapt取消当前页面的屏幕适配;
(2)还有一种情况就是,如果我们某个页面想要适配另外一种尺寸,那么我们也可以单独来处理一下,通过implements CustomAdapt来实现:
public class Test extends Activity implements CustomAdapt {
/**
* 是否以屏幕宽度为基准
* @return true 为按照宽度进行适配, false 为按照高度进行适配
*/
@Override
public boolean isBaseOnWidth() {
return false;
}
/**
* 这里就是我们要设置的尺寸
* @return UI设计的尺寸
*/
@Override
public float getSizeInDp() {
return 0;
}
}
在任何情况下本来适配正常的布局突然出现适配失效,适配异常等问题,只要重写 Activity 的 getResources() 方法即可
@Override
public Resources getResources() {
//需要升级到 v1.1.2 及以上版本才能使用 AutoSizeCompat
// AutoSizeCompat.autoConvertDensityOfGlobal((super.getResources());//如果没有自定义需求用这个方法
AutoSizeCompat.autoConvertDensity(super.getResources(), 640, false);//如果有自定义需求就用这个方法
return super.getResources();
}