取得螢幕實際寬高的方法
標籤: Android
基本上這方法就寫在官方的 doc 裡
網路搜尋的話也很容易找到
不過還是在此記錄一下
主要就是在 Activity 裡利用 getWindowManager() 先取得系統唯一的 WindowManager
然後取得一個 DisplayMetrics 物件
這物件主要是存放解析度相關的屬性
包含 densityDpi, widthPixels, heightPixels ... 等
所以利用 DisplayMetrics 很簡單就得到螢幕實際像素了
WindowManager 除了透過 Activity 的 getWindowManager()獲得之外
還可以透過 Context 的 getSystemService(Context.WINDOW_SERVICE) 取得
所以 code 也可以這樣改
網路搜尋的話也很容易找到
不過還是在此記錄一下
1
2
3
4
5
| DisplayMetrics displaymetrics = new DisplayMetrics(); //使用 Activity 的 getWindowManager()獲得 WindowManager getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int height = displaymetrics.heightPixels; int width = displaymetrics.widthPixels; |
主要就是在 Activity 裡利用 getWindowManager() 先取得系統唯一的 WindowManager
然後取得一個 DisplayMetrics 物件
這物件主要是存放解析度相關的屬性
包含 densityDpi, widthPixels, heightPixels ... 等
所以利用 DisplayMetrics 很簡單就得到螢幕實際像素了
WindowManager 除了透過 Activity 的 getWindowManager()獲得之外
還可以透過 Context 的 getSystemService(Context.WINDOW_SERVICE) 取得
所以 code 也可以這樣改
1
2
3
4
5
6
7
8
| public static int [] getDisplayPixels(Context context){ DisplayMetrics displaymetrics = new DisplayMetrics(); WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); windowManager.getDefaultDisplay().getMetrics(displaymetrics); int width = displaymetrics.widthPixels; int height = displaymetrics.heightPixels; return new int []{width, height}; } |
沒有留言:
張貼留言