美文网首页Android
Android中获取屏幕分辨率、StatusBar高度、dp p

Android中获取屏幕分辨率、StatusBar高度、dp p

作者: 一个脱离高级趣味的人 | 来源:发表于2015-11-26 10:59 被阅读1296次

    在项目中遇到了这样的需求,记录下来

    /** 
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp 
     */
    public int px2dip(Context context, float pxValue) {    
        final float scale = context.getResources().getDisplayMetrics().density;  
        return (int) (pxValue / scale + 0.5f); 
    }
    
    /** 
     * 根据手机的分辨率从 dp 单位 转成为 px(像素) 
     * 
     * @param dipValue
     * @return 
     */
    public static int dip2px(Context context, float dipValue) {    
        final float scale = context.getResources().getDisplayMetrics().density;  
        return (int) (dipValue * scale + 0.5f);
    }
    
    /** 
     * 获取状态栏/通知栏的高度 
     * 
     * @return 
     */
    private int getStatusBarHeight(Context context) {    
        Class<?> c = null;    
        Object obj = null;    
        Field field = null;    
        int x = 0, sbar = 0;    
        try {       
             c = Class.forName("com.android.internal.R$dimen");
            obj = c.newInstance();        
            field = c.getField("status_bar_height");        
            x = Integer.parseInt(field.get(obj).toString());        
            sbar = context.getResources().getDimensionPixelSize(x);   
        } catch (Exception e1) {        
                e1.printStackTrace();    
        }    
        return sbar;
    }
    
    /** 
     * 获取屏幕的宽高 
     */
    private void measure(Context context) {    
        Point point = new Point();   
        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);    
        //不含虚拟按键    
        windowManager.getDefaultDisplay().getSize(point);    
        //包含虚拟按键    
        //windowManager.getDefaultDisplay().getRealSize(point);    
        //屏幕宽度    
        int height = point.y;    
        //屏幕高度    
        int width = point.x;
    }
    
    

    相关文章

      网友评论

        本文标题:Android中获取屏幕分辨率、StatusBar高度、dp p

        本文链接:https://www.haomeiwen.com/subject/xohdhttx.html