笔记80--android中的分辨率和屏幕密度,获取屏幕大小
来源:互联网 发布:贵州华为大数据学院 编辑:程序博客网 时间:2024/05/22 06:49
一、屏幕尺寸
屏幕的实际大小,按照屏幕的对角线进行测量。为简单起见,Android所有屏幕大小分为四种尺寸:小,普通,大,超大。
屏幕长宽比Aspect ratio:是屏幕物理宽度与物理高度的比例关系。
二、分辨率
1、图像分辨率
图像中存储的信息量,是每英寸图像内有多少像素点,分辨率的单位为PPI(Pixels Per Inch),通常叫做:像素每英寸。
图像宽高决定了图像大小,图像质量由PPI来决定。所以一张图占用多大空间由宽高和PPI共同决定。例如:一幅图宽8英寸、高6英寸,分辨率为100PPI,则其占用总的像素数是800*600。
显示图像跟什么有关系:宽8英寸、高6英寸,分辨率为100PPI的显示效果和宽16英寸、高12英寸,分辨率为50PPI的显示效果可以相同。唯一区别是需要动态压缩或拉伸图片。所以,最重要还是跟总的像素大小相关。
2、手机屏幕分辨率
由以上可知,手机屏幕分辨率是屏幕横向长度XPPI X 屏幕纵向长度XPP。如iphone6的分辨率是1334X750。
三、屏幕密度
屏幕密度:单位英寸面积上的像素点数,即PPI,单位是dp或dip。android平台假定的默认显示设备的像素密度为160dpi。运行时,平台会以目标屏幕的密度作为基准,"透明地"处理所有需要的dip缩放操作。要把密度无关像素转为屏幕密度,可用这个公式:pixels=dips*(density/160)。比如DPI为240的屏幕上,1个dip等于1.5个物理像素。
ldpi:PPI为120;
mdpi:PPI为160;
hdpi:PPI为240;
xhdpi:PPI为320;
xxhdpi:PPI为480;
四、获取屏幕尺寸
需要先配置清单文件AndroidMainfest.xml
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true"/>方法1)
int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480px) int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); // 屏幕高(像素,如:800p)方法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; screenWidth = dm.widthPixels; // 屏幕宽(像素,如:480px) screenHeight = dm.heightPixels; // 屏幕高(像素,如:800px)方法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; int screenWidthDip = dm.widthPixels; // 屏幕宽(dip,如:320dip) int screenHeightDip = dm.heightPixels; // 屏幕宽(dip,如:533dip) Log.e(TAG + " DisplayMetrics(222)", "screenWidthDip=" + screenWidthDip + "; screenHeightDip=" + screenHeightDip); screenWidth = (int)(dm.widthPixels * density + 0.5f); // 屏幕宽(px,如:480px) screenHeight = (int)(dm.heightPixels * density + 0.5f); // 屏幕高(px,如:800px)
0 0
- 笔记80--android中的分辨率和屏幕密度,获取屏幕大小
- Android应用:获取屏幕大小和密度
- 【分辨率】Android 获取屏幕尺寸与密度
- Android 屏幕密度及其分辨率获取
- android各种分辨率和屏幕密度
- Android获取屏幕的大小与密度
- 获取屏幕尺寸大小和密度
- Android手机的屏幕大小和密度
- android获取屏幕宽高和密度
- android获取屏幕尺寸和密度
- Android 获取屏幕尺寸和密度
- android 获取屏幕大小和屏幕截图
- Android自适应屏幕方向、大小和分辨率
- Android自适应屏幕方向、大小和分辨率
- Android自适应屏幕方向、大小和分辨率
- Android自适应屏幕方向、大小和分辨率
- Android自适应屏幕方向、大小和分辨率
- Android自适应屏幕方向、大小和分辨率
- [原]Java web学习系列之 Java web开发中数据库连接几种方法
- 硬盘原理
- 第九周项目六 百钱白鸡问题
- 多线程的技术总结
- 用链表实现队列的操作
- 笔记80--android中的分辨率和屏幕密度,获取屏幕大小
- Python字典高级使用方法汇总
- Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV
- HDU 4464 Browsing History(最大ASCII的和)
- Linux网络基础配置
- Google protobuf使用之proto文件编写规则(二)
- 二. 使用VS2012 Addin参考项目(文件查找项目)
- weblogic绿色版安装
- wincc7.2安装授权的时候,该安装哪些?