美文网首页
【Android】定义浮点型资源

【Android】定义浮点型资源

作者: Wavky | 来源:发表于2017-01-23 15:13 被阅读0次

res/values下的<resource>中,支持两种方式指定浮点数资源:

<dimen>标签

<dimen>资源一般用于记录带单位的UI尺寸,例如:

<dimen name="fontSize">18sp</dimen>
<dimen name="btnWidth">5.5dp</dimen>
<dimen name="imageHeight">10px</dimen>

<dimen>支持以下6种常用单位:

  • sp(scale-independent pixels)
  • dp(density-independent pixels)
  • px(pixels 像素)
  • in (inches)
  • mm (millimeters)
  • pt (points at 72 DPI)

记录无单位数值的方法

<item name="ui_float" type="dimen" format="float">1.2</item>
<item name="ui_int" type="dimen" format="integer">5</item>

代码获取:
TypedValue outValue = new TypedValue();
getResources().getValue(R.dimen.ui_float, outValue, true);
float value = outValue.getFloat();

不能通过 getResources().getDimension(id) 方式读取<item>定义的 dimen 数值,会导致运行时异常 NotFoundException


<fraction>标签

<fraction>用于记录百分比数字资源,支持两种形态的百分比声明:
100% 表示相对于对象自身的百分比
100%p 表示相对于父容器的百分比,percent of parent

<fraction name="myWidthPercent">50%</fraction>

以 <item> 方式定义:
<item name="fraction" type="fraction">5%</item>
<item name="parent_fraction" type="fraction">2%p</item>

引用:
@fraction/myWidthPercent

代码获取:
getResources().getFraction(R.fraction.fraction, base, pbase);

TypedValue outValue = new TypedValue();
getResources().getValue(R.dimen.ui_float, outValue, true);
float value = outValue.getFraction(base, pbase);

base 表示百分比资源的基值,返回结果为 nn% * base 的结果值
pbase 表示 %p 形态百分比资源的基值,返回结果为 nn%p * pbase 的结果值

相关文章

网友评论

      本文标题:【Android】定义浮点型资源

      本文链接:https://www.haomeiwen.com/subject/rfuabttx.html