在activity被创建的时候调用,最好在Application中的ActivityLifecycleCallbacks中调用
/**
* dp适配 getResources().getDisplayMetrics().density
* sp适配 getResources().getDisplayMetrics().scaledDensity
* pt适配 getResources().getDisplayMetrics().xdpi
* @param context
* @param width ui设计图的宽度
* @param height ui设计图的高度
*/
private static void resetDensity(Context context,int width,int height){
Point point = new Point();
//获取屏幕的数值
((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getSize(point);
//dp适配 getResources().getDisplayMetrics().density
context.getResources().getDisplayMetrics().density = point.x/width*2f;
context.getResources().getDisplayMetrics().density = point.y/height*2f;
//sp适配 getResources().getDisplayMetrics().scaledDensity
context.getResources().getDisplayMetrics().scaledDensity = point.x/width*2f;
context.getResources().getDisplayMetrics().scaledDensity = point.y/height*2f;
}
网友评论