dp,sp通用适配

2020-02-19  本文已影响0人  cao苗子

在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;
    }
上一篇 下一篇

猜你喜欢

热点阅读