android中使用DisplayMetrics获取屏幕参数
2015-06-22 12:12
661 查看
int android.graphics.Bitmap.getDensity(),返回bitmap-density(密度)。默认的density就是当前display-density,除非当前应用程序不支持不同的screen-density。
在android.util.DisplayMetrics类中定义了一些变量和常量。
--常量DENSITY_XXX,
int类型,定义了不同级别的密度对应的dpi数值,
低密度,DENSITY_LOW,120,
中密度,DENSITY_MEDIUM,160,
高密度,DENSITY_HIGH,240,
超高密度,DENSITY_XHIGH,320,
默认密度,DENSITY_DEFAULT,160(即中密度)。
--变量widthPixels和heightPixels,
int类型,单位像素,display的absolute-width和absolute-height。
--变量density,
float类型,display的logic-density。是一个scaling-factor,用在Density-Independent-Pixel单位,一个dip就是一个像素。
160dpi的screen提供系统display的baseline。
因此,160dpi的screen-density值为1(160/160),120dpi的screen-density值为0.75(120/160)。
screen-1,已知240x320,1.5"x2" ,可以计算出densityDpi等于160。即240/1.5=160,或320/2=160。再通过densityDpi/160计算出density的值1.0。
screen-2,已知320x480,1.5"x2",可以计算出densityDpi等于240。即320/1.5=240,或480/2=240。再通过densityDpi/160计算出density的值1.5。
--变量densityDpi,
int类型,dots-per-inch。
--关于分辨率和尺寸
分辨率是手机长和宽方向上的像素个数,
尺寸是指屏幕的实际物理大小,
手机尺寸手机尺寸115.5×61×12.45解析得长115.5毫米,宽61毫米,高12.45毫米。
1英寸(inch)等于2.54厘米,
--获取DisplayMetrics对象,再获取屏幕的参数
DisplayMetrics displaysMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaysMetrics);
相关文章推荐
- Android聊天软件的开发--聊天通信
- Android--MeasureSpec学习
- Android开发之Handler(五)回调函数拦截
- Fragment在Android机顶盒上的应用
- Android-ScrollView中listview控件高度正确显示
- Android学习笔记(四十):Preference使用
- Android 下载文件及写入SD卡
- Android:使用Gon解析解析Json
- android BitMap回收
- Android开发之Handler(五)几种常见的传值方式
- Android开发之handler(四)
- Android:Json解析库的选择
- Android开发之handler(三)handler真的是重新启动一个线程吗?
- android下屏幕适配
- Android开发之handler(二)
- AsyncTask(异步任务)讲解-android的学习之旅(四十六)
- AsyncTask(异步任务)讲解-android的学习之旅(四十六)
- AsyncTask(异步任务)讲解-android的学习之旅(四十六)
- Android中自定义属性(attrs.xml,TypedArray的使用)
- Android Studio Gradle 添加.so 支持文件