android 分辨率问题
首先dip dp sp px 的区别。
dip==dp 一般 android 中设置控件的位置大小的时候用。与像素无关,与硬件无关,自适应屏幕。
sp 一般在android中用于设置字体大小(google 推荐)。
px 像素,与硬件设备有关,不推荐在android上使用。
获取手机屏幕分辨率
DisplayMetrics dm = new DisplayMereics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
float width = dm.widthPixels * dm.density;
float height = dm.heightPixels * dm.density;
在这里问什么要乘以dm.density 了,是因为通过dm.widthPixels的到的结果始终是320,不是真实的屏幕分辨率,所以要乘以dm.density得到真实的分辨率。
下面在说一下dip的概念:
英文解释为device independent pixel 设备独立像素
相同的dip,在不同分辨率的屏幕上,如果分辨率与密度比例相同,那么在屏幕的相对长度是一样的。
这个地方提到了屏幕密度,屏幕密度的单位是 像素/英寸。
那么再说一下 几个概念:
我们常说的320*480 480*800这个与物理大小无关,与屏幕密度,大小有关,指的是长宽分别有多少像素。
假如说屏幕密度是240 像素/英寸 分辨率为480*800
那么长度就为800/240=3.333 英寸 宽度为480/240=2英寸
屏幕大小即为3.333*2
假如说屏幕密度是160 像素/英寸
屏幕大小与上面的一样的话,那么就可以算出屏幕的分辨率是多少
在此得到屏幕分辨率为320*533
更多相关文章
- Android(安卓)支持多屏幕机制
- Android重力感应实现方式简介
- Android(安卓)调整屏幕分辩率
- Android取消EditText自动默认获取焦点行为
- android:padding和android:margin的区别
- Android获取屏幕宽高要注意的问题
- android 屏幕旋转 重新调用onCreate
- Android应用的构成
- Android重力感应实现方式简介