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

软件工具
0 1106
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无广告纯净版 3038
Android QQ音乐 v11.3.7 定制版解锁免费听歌无广告版 3617
Android 草图大师SKP v1.5 解锁会员版 8980
Android OmoFun追漫神器 v4.2.1 无广告绿色版 6014
AdobeGenP Adobe全家桶系列激活工具 v3.5.0/3.4.14.1 绿色版 6594
Android 七猫免费听书 v1.4 解锁高级版 5015
超良心的抢票神器——Bypass1.16 4746
Android 玲珑加速器 v6.10.9.40 解锁无限时间 3396
Android 大师兄影视 v3.3.8 去广告会员版 2517
热门帖子
从写脚本到接大单:这套AI广告课,让你在家就能跑通整个生意【原创双语字幕】 64
AI漫剧短剧进阶课|电脑+手机双端实操教学|影视剧对口型人物吃瓜×解压末日庇护所全程讲解,高阶技巧全掌握 59
Suno AI零基础音乐创作课:账号准备→界面解析→一键成曲→自定义模式,快速上手AI作曲 55
Codex从入门到实战完整课|充值·安装·接入DeepSeek,记忆·插件·Skill·CLI·MCP全拆解 50
Codex自媒体IP系统课:IP诊断/热点抓取/IP蒸馏 Skill,爆款复刻数字人多平台自动发布教程 50
漫画学Python·办公自动化全实战:Excel/Word/PPT/PDF/邮件/爬虫一网打尽 47
2026Codex 智能体实战课:工具配置精讲|提示词优化技巧|AI 技能封装|全场景自动化落地教程 44
番茄小说达人零门槛副业,不用创作基础,轻松日入500+,碎片化时间稳定增收 42
AI编程 Claude Code快速入门到精通:功能×命令×核心模式×工作流×Skill搭建×插件开发全技能 42