首先通過閱讀API發現獲得DisplayMetrics這個對象的方式有兩種:
方式一:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
方式二
DisplayMetrics metrics = new DisplayMetrics();
metrics = getResources().getDisplayMetrics();
目前發現只在使用方式上有一點區別:
方式一用於Activity中,通過Activity中的getWindowManager()方法來獲取DisplayMetrics對象。
方式二用於繼承於view的類中,通過context.getResources()方法來獲得DisplayMetrics對象。
當獲得了屏幕信息對象之後,經常要使用標準尺寸轉換函數,下面也進行一些介紹:
int wight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200, metrics);
int textSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 50, metrics);
參數介紹:
參數1:要換算成的單位
參數2:要進行轉換的尺寸
參數3:當前屏幕的信息
以方式二爲例:
int offSet = 52;
int tabTextSize = 12;
DisplayMetrics metrics = getResources().getDisplayMetrics();
offSet = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, offSet, metrics);
tabTextSize = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, tabTextSize, metrics);