本文介绍一下获取手机屏幕宽度和高度的两种方法:

 

 

 
  
  1. package com.demo.lc;  
  2.  
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.util.DisplayMetrics;  
  6. import android.view.Display;  
  7.  
  8. public class GetWHActivity extends Activity {  
  9.     /** Called when the activity is first created. */ 
  10.     @Override 
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.main);  
  14.         //方法一  
  15.         Display display = getWindowManager().getDefaultDisplay();  
  16.         System.out.println("宽度: "+display.getWidth()+"高度: "+display.getHeight());  
  17.           
  18.         //方法二  
  19.         DisplayMetrics metric = new DisplayMetrics();  
  20.         getWindowManager().getDefaultDisplay().getMetrics(metric);  
  21.         int width = metric.widthPixels;      
  22.         int height = metric.heightPixels;   
  23.        System.out.println("宽度:"+width+"高度:"+height);  
  24.           
  25.           
  26.     }  

效果如下:

    

 

但是,需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。比如说,一部240x320像素的低密度手机,如果运行上述代码,获取到的屏幕尺寸是320x427。因此,研究之后发现,若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。所以,需要在工程的AndroidManifest.xml文件中,加入supports-screens节点,具体的内容如下:
            <supports-screens
            android:smallScreens="true"
            android:normalScreens="true"
            android:largeScreens="true"
            android:resizeable="true"
            android:anyDensity="true" />
    这样的话,当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。