为了获取DisplayMetrics 成员,首先初始化一个对象如下:
DisplayMetricsmetrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics;
构造函数DisplayMetrics 不需要传递任何参数;调用getWindowManager()之后,会取得现有Activity 的Handle ,此时,getDefaultDisplay() 方法将取得的宽高维度存放于DisplayMetrics 对象中,而取得的宽高维度是以像素为单位(Pixel) ,“像素”所指的是“绝对像素”而非“相对像素”。 其实现代码如下:
private TextView textView;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);DisplayMetrics displayMetrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);String string = "手机屏幕分辨率为:" + displayMetrics.widthPixels + "x" + displayMetrics.heightPixels;textView = (TextView) findViewById(R.id.textView);textView.setText(string);}
下面介绍下我发现的另一种方法,那就是Display类,通过查找API可知,该类在android.view包里,描述为:Providesinformation about the display size and density。 使用方法如下:
private TextView textView;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Display display = getWindowManager().getDefaultDisplay();String string = "手机的屏幕分辨率为:" + display.getWidth() + "x"+ display.getHeight();textView = (TextView) findViewById(R.id.textView);textView.setText(string);}
两种方法运行结果相同: Display对象不仅可以通过调用getWidth()和getHeight()来获取屏幕分辨率,还可以通过getMetrics()方法来获取描述此屏幕尺寸和分辨率的DisplayMetrics对象。
[align=left] DisplayMetrics displayMetrics= [b]new[/b] DisplayMetrics();[/align] display.getMetrics(displayMetrics);
另外,getOrientation ()还可以获得屏幕的方向,getRefreshRate()获取屏幕刷新率等。