【Android】定义浮点型资源

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

标签

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

18sp
5.5dp
10px

支持以下6种常用单位:

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

记录无单位数值的方法

1.2
5

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

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


标签

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

50% 方式定义:
5%
2%p

引用:
@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】定义浮点型资源)