zoukankan      html  css  js  c++  java
  • Android获取屏幕的大小与密度的代码

    Android项目开发中很多时候需要获取手机屏幕的宽高以及屏幕密度来进行动态布局,这里总结了三种获取屏幕大小和屏幕密度的方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    // 获取屏幕密度(方法1) 
            int screenWidth  = getWindowManager().getDefaultDisplay().getWidth();       // 屏幕宽(像素,如:480px) 
            int screenHeight = getWindowManager().getDefaultDisplay().getHeight();      // 屏幕高(像素,如:800p) 
               
            Log.e(TAG + "  getDefaultDisplay""screenWidth=" + screenWidth + "; screenHeight=" + screenHeight); 
             
            // 获取屏幕密度(方法2) 
            DisplayMetrics dm = new DisplayMetrics(); 
            dm = getResources().getDisplayMetrics(); 
               
            float density  = dm.density;        // 屏幕密度(像素比例:0.75/1.0/1.5/2.0) 
            int densityDPI = dm.densityDpi;     // 屏幕密度(每寸像素:120/160/240/320) 
            float xdpi = dm.xdpi;            
            float ydpi = dm.ydpi; 
               
            Log.e(TAG + "  DisplayMetrics""xdpi=" + xdpi + "; ydpi=" + ydpi); 
            Log.e(TAG + "  DisplayMetrics""density=" + density + "; densityDPI=" + densityDPI); 
               
            screenWidth  = dm.widthPixels;      // 屏幕宽(像素,如:480px) 
            screenHeight = dm.heightPixels;     // 屏幕高(像素,如:800px) 
               
            Log.e(TAG + "  DisplayMetrics""screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);
             
            // 获取屏幕密度(方法3) 
            dm = new DisplayMetrics(); 
            getWindowManager().getDefaultDisplay().getMetrics(dm); 
               
            density  = dm.density;      // 屏幕密度(像素比例:0.75/1.0/1.5/2.0) 
            densityDPI = dm.densityDpi;     // 屏幕密度(每寸像素:120/160/240/320) 
            xdpi = dm.xdpi;          
            ydpi = dm.ydpi; 
               
            Log.e(TAG + "  DisplayMetrics""xdpi=" + xdpi + "; ydpi=" + ydpi); 
            Log.e(TAG + "  DisplayMetrics""density=" + density + "; densityDPI=" + densityDPI); 
               
            int screenWidthDip = dm.widthPixels;        // 屏幕宽(dip,如:320dip) 
            int screenHeightDip = dm.heightPixels;      // 屏幕宽(dip,如:533dip) 
               
            Log.e(TAG + "  DisplayMetrics""screenWidthDip=" + screenWidthDip + "; screenHeightDip=" + screenHeightDip); 
               
            screenWidth  = (int)(dm.widthPixels * density + 0.5f);      // 屏幕宽(px,如:480px) 
            screenHeight = (int)(dm.heightPixels * density + 0.5f);     // 屏幕高(px,如:800px) 
               
            Log.e(TAG + "  DisplayMetrics""screenWidth=" + screenWidth + "; screenHeight=" + screenHeight);
  • 相关阅读:
    Eclipse安装常用离线插件
    Eclipse添加Maven、Jdk、Tomcat
    每天总结模电-去耦电容(一)
    4K显示器含义
    c语言的学习方法
    悲伤逆流成河读后感
    晶体管(三极管,场效应管,MOS以及CMOS)的区别
    强电的元器件认识
    ElasticSearch
    DataGrip
  • 原文地址:https://www.cnblogs.com/likeju/p/4789360.html
Copyright © 2011-2022 走看看