2014年5月14日 星期三

[Android] dp轉pixel(使用官方Method)



在開發Android Custom View的時候,常需要在程式碼中去設定View的大小,而Android程式碼的設定值,只能以pixel為單位,可是根據官方建議,元件大小用dp為主,而文字大小則用sp為主,因此需要一個將dp傳換成pixel的工具,不過還好官方有提供各種類型專換至pixel的函式:TypedValue.applyDimension (在android.util這個package下),這樣一來,就可以不用自己寫啦而且是官方提供的,所以可以安心服用XD。
以下是簡單的範例:


 
private float dpToPixel(Context context,int dp) {
  
  Resources resources = context.getResources();//取得系統資源
  
  float pixel = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, // 轉換單位:dp值
  dp, // 輸入的dp值
  resources.getDisplayMetrics());
  
  return pixel;
}