猪头小队长 on December 10th, 2008

现在,吵吵闹闹的要生产Android手机的厂商越来越多,从开发者的角度来说,不能不说这是一件好事,毕竟写出来的程序可以顺利的跑在更多的设备上,但是参差不及的硬件选择也给我们带来了很大的麻烦,最直接的就是不同的手机屏幕的尺寸可能不一样,又不能为每种尺寸都设计一套布局,所以就有可能需要在程序运行时来通过屏幕的大小来动态的调整一些布局相关的参数。那如何获得屏幕的大小呢?
在android.app.Activity中提供这样的方法:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;

其中,screenWidth就是屏幕的宽度,screenHeight就是屏幕的高度。
如果将手机从肖像模式(竖着拿)变成风景模式(横着拿),这两个值也会随之改变,所以,也许我们不用这种方法,也可以推算出手机的手持方式,从而来改变一些布局参数。

Continue reading about 如何在运行时获得屏幕尺寸?