1.需要一个能在类
实现Application的ActivityLifecycleCallbacks的方法在
onActivityCreated
onActivityStarted
onActivityResumed
实现屏幕与图片的百分比
/**
*重新计算displayMetrics.xhdpi,使单位pt重定义为设计稿的相对长度
*
*@paramcontext
*@paramdesignWidth设计稿的宽度
*@see#activate()
*/
public static voidresetDensity(Contextcontext, floatdesignWidth) {
if(context ==null)
return;
Point size=newPoint();
((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getSize(size);
Resources resources= context.getResources();
resources.getDisplayMetrics().xdpi=size.x/ designWidth *72f;
DisplayMetrics metrics=getMetricsOnMiui(context.getResources());
if(metrics!=null)
metrics.xdpi=size.x/ designWidth *72f;
}
然后就需要添加一个开启关闭的方法
/**
*激活本方案
*/
public voidactivate() {
resetDensity(mApplication,designWidth);
mApplication.registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
}
/**
*恢复系统原生方案
*/
public voidinactivate() {
restoreDensity(mApplication);
mApplication.unregisterActivityLifecycleCallbacks(activityLifecycleCallbacks);
}

实现自己 的Application方法..需要添加到布局文件里
网友评论