Android中如何获取屏幕的分辨率?

一.概念

手机屏幕图像的显示都是由一个个的小点组成的,这一个个的小点就称之为像素。 一块方形的屏幕横向有多少个点,竖向有多少个点,相乘之后的数值就是这块屏幕的像素(数码相机的像素也是这么乘积出来的)。但是为了方便表示屏幕的大小,通常用横向像素×竖向像素的方式来表示。

二.如何获取
1.在activity中

方法一:

     DisplayMetrics dm = getResources().getDisplayMetrics();
     int screenWidth = dm.widthPixels;
     int screenHeight = dm.heightPixels;

方法二:

     DisplayMetrics dm = new DisplayMetrics();
     this.getWindowManager().getDefaultDisplay().getMetrics(dm);
     int screenWidth = dm.widthPixels;
     int screenHeight = dm.heightPixels;
2.在非activity中,传一个Context进来调用

方法一:

    public void getWindowPixels(Context c) { 
         myContext = c;
         DisplayMetrics dm = c.getResources().getDisplayMetrics();
         int screenWidth = dm.widthPixels;
         int screenHeight = dm.heightPixels;
    }

方法二:

public class ToolUtils {
          public static int getWindowWidth(Context context){
                // 获取屏幕宽度
                WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
                DisplayMetrics dm = new DisplayMetrics();
                wm.getDefaultDisplay().getMetrics(dm);
                int mScreenWidth = dm.widthPixels;
                return mScreenWidth;
         }
         public static int getWindowHeigh(Context context){
                // 获取屏幕高度
                WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
                DisplayMetrics dm = new DisplayMetrics();
                wm.getDefaultDisplay().getMetrics(dm);
                int mScreenHeigh = dm.heightPixels;
                return mScreenHeigh;
         }
}