了解键入的值类

Sal*_*mim 3 android

大部分时间类的名称都足够直观,以便制作它的用途.像BufferedReader,InputStreamReader等一样但是从最近我开始学习android,这个类android.util.TypedValue被教导用于将Dip转换为像素(希望它有许多其他用途,但我不知道).我真的遇到了与其名字和工作相处的麻烦.它的用途就像

int px = (int)TypedValue.applyDimension(TypedValue.Complex_Unit_Dip,200,r.getDisplayMetrices());
Run Code Online (Sandbox Code Playgroud)

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

PS:我是学生:)

ala*_*anv 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);
Run Code Online (Sandbox Code Playgroud)

像许多Android类一样,熟悉类的工作方式的最佳方法是查看源代码.