原文来源:http://stackoverflow.com/questions/3282390/add-floating-point-value-to-android-resources-values

dimens.xml的一般用法

在dimens.xml中可以保存各种在UI布局时用到的尺寸,例如:

<dimen name="sizeA">18spdimen><dimen name="sizeB">5.5dpdimen><dimen name="sizeC">10pxdimen>

在dimens.xml中配置的所有尺寸都必须带有单位,dimens.xml中支持的单位一共有6种。常用的单位有sp(scale-independent pixels),dp(density-independent pixels),px(pixels 像素),此外还支持 in (inches),mm (millimeters)和pt (points at 72 DPI)。
要在xml中引用上述定义的dimens,可以使用@dimen/sizeA。
要在代码中引用上述定义的dimens,可以使用getResources().getDimension(R.dimen.sizeB);
但是在布局时会经常使用一些不带单位的常量数值,如在LinearLayout中设置各个children的weight值(android:layout_weight),在TextView中设置行间距倍数(android:lineSpacingMultiplier)。这些数值由于不带单位就不能通过如下直接定义的方式保存在dimens.xml中。

<dimen name="sizeD">18dimen><dimen name="sizeE">5.5dimen>

在dimens.xml中保存不带单位的数值

要在dimens.xml中保存不带单位的数值,可以用如下格式来定义。

<item name="text_line_spacing" type="dimen" format="float">1.2item>

在上述定义中,type=”dimen”属性表示定义的item的资源类型是dimen类型。除了可以使用”dimen”外,还可以使用color,string,style等类型,但由于其他类型都可以直接定义,且没有数值的约束,所以一般不需要通过这种方法来定义。format=”float”属性表示定义的数值类型是float类型。除了”float”类型外,还可以使用boolean,fraction,integer等类型。例如:

<item name="top_weight" type="dimen" format="integer">5item>

要在xml中引用上述定义的dimens,可以使用@dimen/text_line_spacing。
要在代码中引用上述定义的dimens,可以使用如下代码。

TypedValue outValue = new TypedValue();getResources().getValue(R.dimen.text_line_spacing, outValue, true);float value = outValue.getFloat();

注意:不能通过getResources().getDimension(R.dimen.text_line_spacing);方式来引用,如果用这种方式引用上述方法定义的dimens,编译时不会报错,但是运行时会抛出NotFoundException。

更多相关文章

  1. Android(安卓)6.0添加自定义铃声
  2. android 自定义弹出框AlertDialog
  3. android编译时如何决定一个APK等Module是否被自动编译到system.i
  4. 自定义字体| Using a custom typeface in Android
  5. android 随手记 自定义广播通知栏
  6. Android中的Adapter简单介绍
  7. Activity实现自定义Dialog
  8. [Android(安卓)Pro] Android(安卓)studio jni中调用Log输出调试
  9. Android(安卓)自定义TitleBar

随机推荐

  1. Android开发 APP进程启动原理
  2. dex分包
  3. android的edittext默认不获得焦点
  4. Could not find method runProguard() fo
  5. android中基本的加密方法
  6. Android稳定性问题分析时获取手机状态的A
  7. android 实现圆形imageView,Circle image
  8. Android(安卓)P 各种ANR的时间
  9. 解决vlc-android播放http视频退出问题
  10. Android之判断是否安装某个应用