android 分辨率问题

来源:互联网 发布:怎么删除ubuntu引导 编辑:程序博客网 时间:2024/05/20 01:13

首先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

 

原创粉丝点击