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);

Android获取屏幕的大小与密度的代码的更多相关文章

  1. Android获取屏幕尺寸大小

    官方API: A structure describing general information about a display, such as its size, density, and fo ...

  2. Android 获取屏幕大小和密度

    Android 获取屏幕大小和密度 DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay ...

  3. Android获取屏幕大小

    本来想着如下方法就能得到了 Display display = getWindowManager().getDefaultDisplay(); Log.i("view", &quo ...

  4. Android获取屏幕大小和设置无标题栏

    android获取屏幕大小非常常用,例如写个程序,如果要做成通用性很强的程序,适用屏幕很强,一般布局的时候都是根据屏幕的长宽来定义的,所以我把这个总结一下,方便日后忘记的时候查阅.还有就是有时候写程序 ...

  5. Android 获取屏幕分辨率

    原文:Android 获取屏幕分辨率 得到一个屏幕尺寸的三种方法如下:        // 通过WindowManager获取        DisplayMetrics dm = new Displ ...

  6. C# 获取屏幕的大小

    原文地址:http://www.cnblogs.com/zp89850/archive/2011/08/23/2151052.html C# 获取屏幕的大小 WinForm: int iActulaW ...

  7. Android获取屏幕宽和高

    android获取屏幕的高度和宽度用到WindowManager这个类,两种方法:   1.WindowManager wm = (WindowManager) getContext()        ...

  8. Android 获取屏幕尺寸与密度

      android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533 结果很不靠谱,于是自己写了几行代码,亲 ...

  9. Android 获取屏幕尺寸与密度(转载)

    android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533 结果很不靠谱,于是自己写了几行代码,亲测一 ...

随机推荐

  1. ES6 基础知识-----简记 let const

    ES5中只有函数作用域和全局作用域,声明变量使用var,在es6中添加声明变量 let const let 声明块级作用域变量, let 不存在变量提升 var命令会发生”变量提升“现象,即变量可以在 ...

  2. 从0开始学习Hadoop(2) 环境准备-Win7主机与Ubuntu虚拟机共享文件夹设置

    主机要跟虚拟机共享文件夹设置有很多种办法,这里提供一种本地用户的方式 1. 新增一个本地用户,密码等其他设置如下 2.选择文件目录,这是共享属性 Ubuntu端设置: 文件夹->连接到网络-&g ...

  3. 《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》论文笔记

    Code Address:https://github.com/junyanz/CycleGAN. Abstract 引出Image Translating的概念(greyscale to color ...

  4. jQuery得到多个值只能用取Class ,不能用取ID

    如果页面有多个checkbox: <input type="checkbox"   class="checkApply"    id="chec ...

  5. Orchard 相关

    Orchard中文网: http://www.orchardch.com/ 起飞网: http://www.qeefee.com/category/orchard

  6. ARC102 C~D

    C: 枚举中间点,计算两边点差值,把个数乘起来即可 #include<iostream> #include<cstdio> #include<algorithm> ...

  7. bzoj 4606: [Apio2008]DNA【dp】

    写题五分钟读题两小时系列-- 看懂题的话不算难,然而我去看了大佬的blog才看懂题-- 题目大意是:一个原字符串,其中有一种通配符,合法串的定义是这个串(不含通配符))可以匹配原串并且这个串最多分成k ...

  8. 配置yum源的步骤(阿里源)

    配置yum源的步骤1.可以移除默认的yum仓库,也就是删除 /etc/yum.repos.d/底下所有的.repo文件(踢出国外的yum源) 1.配置yum源,找到阿里云的官方镜像源地址 https: ...

  9. 在Linux下使用linuxdeployqt发布Qt程序

    一.简介 linuxdeployqt 是Linux下的qt打包工具,可以将应用程序使用的资源(如库,图形和插件)复制到二进制运行文件所在的文件夹中. 二.安装linuxdeployqt 去github ...

  10. 51nod 1096 距离之和最小

    求中位数,注意求中位数前排序.... #include <bits/stdc++.h> using namespace std; #define LL long long const in ...