public void getScreen(){         // 通过Activity类中的getWindowManager()方法获取窗口管理,再调用getDefaultDisplay()方法获    取获取Display对象        Display display = getWindowManager().getDefaultDisplay();         // 方法一(推荐使用)使用Point来保存屏幕宽、高两个数据        Point outSize = new Point();        // 通过Display对象获取屏幕宽、高数据并保存到Point对象中        display.getSize(outSize);        // 从Point对象中获取宽、高        int x = outSize.x;        int y = outSize.y;        // 通过吐司显示屏幕宽、高数据        Toast.makeText(this, "手机像素为:x:" + x + ",y:" + y+",screen:"+getPhysicsScreenSize(UDPConn.this), Toast.LENGTH_LONG).show();}      /**     * 得到屏幕的物理尺寸,由于该尺寸是在出厂时,厂商写死的,所以仅供参考     * 计算方法:获取到屏幕的分辨率:point.x和point.y,再取出屏幕的DPI(每英寸的像素数量),     * 计算长和宽有多少英寸,即:point.x / dm.xdpi,point.y / dm.ydpi,屏幕的长和宽算出来了,     * 再用勾股定理,计算出斜角边的长度,即屏幕尺寸。     *     * @param context     * @return     */    public static double getPhysicsScreenSize(Context context) {             WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);        Point point = new Point();        manager.getDefaultDisplay().getRealSize(point);        DisplayMetrics dm = context.getResources().getDisplayMetrics();        int densityDpi = dm.densityDpi;//得到屏幕的密度值,但是该密度值只能作为参考,因为他是固定的几个密度值。        double x = Math.pow(point.x / dm.xdpi, 2);//dm.xdpi是屏幕x方向的真实密度值,比上面的densityDpi真实。        double y = Math.pow(point.y / dm.ydpi, 2);//dm.xdpi是屏幕y方向的真实密度值,比上面的densityDpi真实。        double screenInches = Math.sqrt(x + y);        return screenInches;    }     /**     * 获取屏幕像素,尺寸,dpi相关信息     * @param activity 上下文     * @return 屏幕信息     */    public static String getScreenInfo(Activity activity){             DisplayMetrics displayMetrics = new DisplayMetrics();        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {                 //4.2开始有虚拟导航栏,增加了该方法才能准确获取屏幕高度            activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);        }else{                 activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);            //displayMetrics = activity.getResources().getDisplayMetrics();//或者该方法也行        }        Point point = new Point();        activity.getWindowManager().getDefaultDisplay().getRealSize(point);        double x = Math.pow(point.x / displayMetrics.xdpi, 2);//dm.xdpi是屏幕x方向的真实密度值,比上面的densityDpi真实。        double y = Math.pow(point.y / displayMetrics.ydpi, 2);//dm.xdpi是屏幕y方向的真实密度值,比上面的densityDpi真实。        double screenInches = Math.sqrt(x + y);        return "screenSize="+screenInches                + ",densityDpi="+displayMetrics.densityDpi                + ",width="+displayMetrics.widthPixels                +",height="+displayMetrics.heightPixels;    }

本文转载自网络,转载仅为分享干货知识,如有侵权欢迎联系云豹科技进行删除处理

更多相关文章

  1. android当前apn的状态以及获取方法
  2. 【Android】新浪微博开放平台V2开发入门基础
  3. Android获取应用运行次数
  4. Android(安卓)快速掌握Activity生命周期
  5. Android 获取手机IMEI 和 IMSI 号
  6. Android(安卓)studio 获取手机联系人和号码并输出
  7. webView获取链接后的url和加载经过处理后的HTML
  8. android 标题栏的高度
  9. 【UI交互效果】android UI效果三: 滚动切换屏幕

随机推荐

  1. Android之NDK初探
  2. ubuntu下adb不能检测到android手机
  3. 总结Android多分辨率支持
  4. 浅入浅出Android(015):使用ImageView显示网
  5. android 所有焦点问题汇总【Focus】
  6. 转:Android 对话框【Dialog】去除白色边框
  7. Android 开发实践 ViewGroup 实现左右滑
  8. 14、到底改如何区分android的平板、电视
  9. android apk重签名命令
  10. Android Https请求详细demo