[Android問答] 如何獲得手機屏幕分辨率?

原文地址爲:[Android問答] 如何獲得手機屏幕分辨率?

這個問題並不複雜,但是問的人實在很多,所以還是集中回答一下。

Android 3.2(API Level 13)開始,在Activity裏使用下面的方法來獲取屏幕分辨率(單位是像素):

Display display = getWindowManager().getDefaultDisplay(); //Activity#getWindowManager()
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

如果代碼不是寫在Activity裏,用下面的方法(通過WINDOW_SERVICE獲取display對象):

WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display
= wm.getDefaultDisplay();
display.getSize(size);
int width = size.x;
int height = size.y;

如果Android版本小於3.2,那麼因爲Display對象還沒有getSize()方法,應該用下面的方法獲取屏幕分辨率:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

最後,附Android系統版本與API Level對照表(官方文檔在這裏,如果打不開,也可以在android源文件的android.os.Build裏找到這些對應關係):

Platform Version API Level VERSION_CODE Notes
Android 5.0 21 LOLLIPOP (正式的名稱)
  21 L (暫時使用的名稱)
Android 4.4W 20 KITKAT_WATCH  
Android 4.4 19 KITKAT  
Android 4.3 18 JELLY_BEAN_MR2  
Android 4.2 17 JELLY_BEAN_MR1  
Android 4.1, 4.1.1 16 JELLY_BEAN Platform Highlights
Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1 Platform Highlights
Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1 Platform Highlights
Android 3.0.x 11 HONEYCOMB Platform Highlights
Android 2.3.4
Android 2.3.3
10 GINGERBREAD_MR1 PlatformHighlights
Android 2.3.2
Android 2.3.1
Android2.3
9 GINGERBREAD
Android 2.2.x 8 FROYO Platform Highlights
Android 2.1.x 7 ECLAIR_MR1 PlatformHighlights
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT Platform Highlights
Android 1.5 3 CUPCAKE Platform Highlights
Android 1.1 2 BASE_1_1  
Android 1.0 1 BASE  

 

參考資料

Display | Android Developers

Android: How to get screen dimensions

What is API Level?


轉載請註明本文地址:[Android問答] 如何獲得手機屏幕分辨率?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章