zoukankan      html  css  js  c++  java
  • Android 获取屏幕分辨率

    得到一个屏幕尺寸的三种方法如下:
            // 通过WindowManager获取
            DisplayMetrics dm = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(dm);

            // 通过Resources获取 
            DisplayMetrics dm2 = getResources().getDisplayMetrics();

            // 获取屏幕的默认分辨率
            Display display = getWindowManager().getDefaultDisplay();
            System.out.println("width-display :" + display.getWidth());
            System.out.println("heigth-display :" + display.getHeight());

    安卓4.2系统中,使用方法一得到了正确的屏幕尺寸值,而使用方法二和三得到的值全部为零。原因不祥。其中方法三中的display.getWidth()和display.getHeight()已被弃用。


    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);//display = getWindowManager().getDefaultDisplay();display.getMetrics(dm)(把屏幕尺寸信息赋值给DisplayMetrics dm);
    width = dm.widthPixels;
    height = dm.heightPixels;
    xdpi = dm.xdpi;
    ydpi = dm.ydpi;
    density = dm.densityDpi;
    fdensity = dm.density;


    查询log,得到各值如下:
    D/Lichking(22643): -----------widthpixels---540
    D/Lichking(22643): -----------heightpixels---960
    D/Lichking(22643): -----------xdpi---244.92857
    D/Lichking(22643): -----------ydpi---246.30302
    D/Lichking(22643): -----------density---240
    D/Lichking(22643): -----------fdensity---1.5
    另提一点,我们通常所指的屏幕上的int尺寸是像素单位,比如我用getHitRect()得到控件的矩形坐标的值即使和像素尺寸相匹配的。

    DisplayMetrics和Display的关系。
    Display指代显示区域这个对象,它可能是真实的物理屏幕,也可能仅指应用程序的显示区域,比如在非全屏Activity里,系统因为有状态栏,因此显示区域要比物理屏幕要小。DisplayMetrics里封装了显示区域的各种属性值。查看源码发现,在DisplayMetrics对各个属性值的注释都说明为真实的物理尺寸。而且也发现display.getMetrics(dm)这一函数基本在应用在获取真实屏幕尺寸的时候。记住这一点即好。


    另外xdpi不是指屏幕宽度上以dp为单位的大小。以dp为单位的屏幕宽度需用计算公式:dpWidth = WidthPixels / fdensity = 540 / 1.5 = 360

  • 相关阅读:
    69期-Java SE-046_JSP-3
    69期-Java SE-045_JSP-2
    69期-Java SE-044_JSP-1
    69期-Java SE-043_Servlet-1
    69期-Java SE-042_Tomcat-1
    Sublime Text3快捷键
    http协议与https协议的前世今生
    解决并发问题,数据库常用的两把锁——悲观锁,乐观锁
    springboot解决文件上传大小限制
    docker基本操作
  • 原文地址:https://www.cnblogs.com/yaya-Android/p/4532888.html
Copyright © 2011-2022 走看看