短视频商城源码,Android获取屏幕尺寸、像素

软件工具
0 855
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;
    }


精选帖子
Android 可可影视 v3.3.6无广告纯净版 1751
Android QQ音乐 v11.3.7 定制版解锁免费听歌无广告版 2188
Android 草图大师SKP v1.5 解锁会员版 7639
Android OmoFun追漫神器 v4.2.1 无广告绿色版 4645
AdobeGenP Adobe全家桶系列激活工具 v3.5.0/3.4.14.1 绿色版 5225
Android 七猫免费听书 v1.4 解锁高级版 3684
超良心的抢票神器——Bypass1.16 3223
Android 玲珑加速器 v6.10.9.40 解锁无限时间 2057
Android 大师兄影视 v3.3.8 去广告会员版 1178
热门帖子
玫瑰克隆,一键爆款工具详细介绍和使用教程,自媒体必备 144
小马模拟器游戏下载 v2.9.2 会员版 一键启动多机种模拟器整合 支持局域网多人联机对战 90
安卓手机平板上运行Windows软件游戏 Winlator11.0汉化中文版最新版 67
好用的梯子软件推荐-稳定好用的手机梯子软件+电脑好用的梯子及外网加速器指南(免费试用升级付费) 67
拳皇 WingEX1.2 前瞻版最新修复版 2025.11.23 格斗游戏拳皇EX改版游戏 63
B站APP Bilibili哔哩哔哩(内置哔哩漫游v1.7.0) v8.72.0哔哩漫游版 各种去广告净化 61
30T电脑单机游戏资源下载 单机游戏+单机网游合集下载 1000+3A大型游戏 61
多多虚拟类目新玩法:机器人全程帮助发货和回客服,轻松实现月入1-5W目标 57
应用管家TV版 v1.8.0 电视应用和文件管理器 应用提取 传输文件 网盘 支持车机+平板 56