了解类型化值类

时间:2015-10-20 18:30:54

标签: android

大多数时候,课程的名称足够直观,以便制作出用于它的内容。像BufferedReader,InputStreamReader等一样,但是最近我开始学习android,这个类,android.util.TypedValue被教导用于将Dip转换为像素(希望它有许多其他用途,但我不知道)。我真的很难与自己的名字和工作相处。它的用途就像

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

在文档中它说,它用于存储动态类型的数据值,我看不到任何被输入的内容:P。所以,我真的很感激,如果有人能帮我解决这个问题。

PS:我是学生:)

1 个答案:

答案 0 :(得分:7)

TypedValue包含从已编译的Android XML资源加载的类型化数据(例如浮点数,维度等)的原始表示。该类主要用作资源框架和应用程序开发人员需要使用存储在资源中的值的位置之间的中介。

例如,您可能想要解析维度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