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