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

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


精选帖子
DAWN 融资3300万美金,下一个挖矿空投大项目类似grass 268
Teneo融资上千万美元,类似小草Grass挂机项目 295
Android 标枪定位 v2.11.3 免Root实现虚拟定位 335
Windows11 轻松设置 v1.10 绿色版 249
Android 海螺问问 Ghat GPT v2.30.0 免费AI助手 301
Android 海绵音乐 v2.33 免费AI音乐软件 239
Android 换脸变装视频秀 v1.2.4 美女视频AI换脸 228
Android 配音鸭文字转语音 v1.6.0登陆解锁会员 141
Android 配音工厂 v1.0.8 解锁会员版 398
热门帖子
Android 标枪定位 v2.11.3 免Root实现虚拟定位 335
Android 海螺问问 Ghat GPT v2.30.0 免费AI助手 301
Teneo融资上千万美元,类似小草Grass挂机项目 295
DAWN 融资3300万美金,下一个挖矿空投大项目类似grass 268
Windows11 轻松设置 v1.10 绿色版 249
Android 海绵音乐 v2.33 免费AI音乐软件 239
Android 换脸变装视频秀 v1.2.4 美女视频AI换脸 228
Ai一键生成影视解说视频,仅需十秒即可完成,多平台分发,轻松日入1000+ 178
【免费V2ray安卓和电脑梯子】年度最佳免费v2ray梯子推荐_最新免费V2ray节点分享 113