在開發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; }
提供官方的說明當參考:
public static float applyDimension (int unit, float value, DisplayMetrics metrics)
Added in API level 1Converts an unpacked complex data value holding a dimension to its final floating point value. The two parameters unit and value are as inTYPE_DIMENSION
.Parameters
unit The unit to convert from. value The value to apply the unit to. metrics Current display metrics to use in the conversion -- supplies display density and scaling information. Returns
- The complex floating point value multiplied by the appropriate metrics depending on its unit.
沒有留言:
張貼留言