2015-10-20 72 views
2

大部分時間,班級的名稱足夠直觀,以便使用它的用途。像BufferedReader,InputStreamReader等但最近我已經開始學習android,這個類,android.util.TypedValue被教導用於轉換Dip到像素(希望它有許多其他用途,其中我不知道,雖然)。我的名字和工作相處真的很困難。它的用法就像瞭解類型值類

int px = (int)TypedValue.applyDimension(TypedValue.Complex_Unit_Dip,200,r.getDisplayMetrices()); 

在文檔中它說,它用於存儲動態類型的數據值,我看不到任何輸入:P。所以請我真的很感激,如果有人能幫我解決這個問題。

PS:我是來自編譯Android的XML資源加載的學生:)

回答

5

TypedValue保存類型數據的原始表述(如漂浮,尺寸等)。該類主要用作資源框架與應用程序開發人員需要使用存儲在資源中的值的位置之間的中介。

例如,您可能想要解析尺寸爲android.R.dimen.app_icon_size的值。該值存儲在資源表的打包表示中,其中包括來自框架的values.xmldimens.xml等文件的數據。要檢索可用表單中的數據,你會做這樣的事情:

Resources res = getResources; 
DisplayMetrics metrics = res.getDisplayMetrics(); 
TypedValue outValue = new TypedValue(); 

// Loads the raw data into the typed value 
res.getValue(android.R.dimen.app_icon_size, outValue, true); 

// Converts the raw data into a usable value 
int appIconSizePx = outValue.getDimension(metrics); 

像許多Android班,熟悉類的工作方式是通過source code尋找最好的方式。