Android:获取屏幕分辨率方法汇总

Android获得屏幕分辨率的两种方法 

  1. import android.os.Bundle;  
  2. import android.app.Activity;  
  3. import android.content.Intent;  
  4. import android.content.pm.PackageManager;  
  5. import android.content.pm.ResolveInfo;  
  6. import android.util.DisplayMetrics;  
  7. import android.view.Display;  
  8. import android.view.Menu;  
  9. import android.view.WindowManager;  
  10. import android.widget.TextView;  
  11.   
  12. import java.util.List;  
  13.   
  14. public class MainActivity extends Activity {  
  15.   
  16.     @Override  
  17.     public void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.activity_main);  
  20.         final PackageManager packageManager = this.getPackageManager();  
  21.         final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);  
  22.         mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);  
  23.        // mainIntent.setPackage(packageName);         
  24.         final List<ResolveInfo> apps = packageManager.queryIntentActivities(mainIntent, 0);  
  25.           
  26.           
  27.         // 方法1 Android获得屏幕的宽和高    
  28.         WindowManager windowManager = getWindowManager();    
  29.         Display display = windowManager.getDefaultDisplay();    
  30.         int screenWidth = screenWidth = display.getWidth();    
  31.         int screenHeight = screenHeight = display.getHeight();    
  32.             
  33.         // 方法2  这种方式是比较常用的,比较符合
  34.         DisplayMetrics dm = new DisplayMetrics();  
  35.         getWindowManager().getDefaultDisplay().getMetrics(dm);  
  36.         TextView tv = (TextView)this.findViewById(R.id.tv);  
  37.         float width=dm.widthPixels*dm.density;   
  38.         float height=dm.heightPixels*dm.density;   
  39.         tv.setText("First method:"+dm.toString()+"\n"+"Second method:"+"Y="+screenWidth+";X="+screenHeight);   
  40.   
  41.         //dm.widthPixels,dm.heightPixels  
  42.   
  43.   
  44.     }  
  45.   
  46. }  

在实际的项目中,我们经常要得到当前屏幕的分辨率,进行机型适配,得到分辨率其实很简单,主要有两种方法。

方法/步骤

  1. 在实际的项目中,我们经常要得到当前屏幕的分辨率,进行机型适配,得到分辨率其实很简单,主要有两种方法。

    在ACTIVITY的onCreate(Bundle savedInstanceState) 方法中修改。

    方法一:

    Display mDisplay = getWindowManager().getDefaultDisplay();

    int W = mDisplay.getWidth();

    int H = mDisplay.getHeight();

    Log.i("Main", "Width = " + W);

    Log.i("Main", "Height = " + H);

    复制代码

    Display是在android.view.Display包中的。

  2. 2

    方法二:

    DisplayMetrics mDisplayMetrics = new DisplayMetrics();

    getWindowManager().getDefaultDisplay().getMetrics(mDisplayMetrics);

    int W = mDisplayMetrics.widthPixels;

    int H = mDisplayMetrics.heightPixels;

    Log.i("Main", "Width = " + W);

    Log.i("Main", "Height = " + H);

    复制代码

    DisplayMetrics是在android.util.DisplayMetrics包中的,getWindowManager()是Activity中的方法。

你可能感兴趣的:(Android:获取屏幕分辨率方法汇总)