int getDimensionPixelOffset():与getDimension()功能类似,不同的是将结果强转为int,并且小数部分直接截断(例如2.1取整为2,2.5取整为2)
int getDimensionPixelSize():与getDimension()功能类似,不同的是将结果转换为int,并且小数部分四舍五入(例如2.1取整为2,2.5取整为3)
float getDimension():是基于当前DisplayMetrics进行转换,获取指定资源id对应的尺寸,返回值是float
-
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="dp">1.5dp</dimen>
<dimen name="sp">1.5sp</dimen>
<dimen name="px">1.5px</dimen>
</resources>
float dp1=getResources().getDimension(R.dimen.dp);
int dp2=getResources().getDimensionPixelOffset(R.dimen.dp);
int dp3=getResources().getDimensionPixelSize(R.dimen.dp);
float sp1=getResources().getDimension(R.dimen.sp);
int sp2=getResources().getDimensionPixelOffset(R.dimen.sp);
int sp3=getResources().getDimensionPixelSize(R.dimen.sp);
float px1=getResources().getDimension(R.dimen.px);
int px2=getResources().getDimensionPixelOffset(R.dimen.px);
int px3=getResources().getDimensionPixelSize(R.dimen.px);
Log.i("test", "[dp] getDimension= "+dp1+", getDimensionPixelOffset="+dp2+",getDimensionPixelSize="+dp3);
Log.i("test", "[sp]getDimension= "+sp1+", getDimensionPixelOffset="+sp2+",getDimensionPixelSize="+sp3);
Log.i("test", "[px] getDimension= "+px1+", getDimensionPixelOffset="+px2+",getDimensionPixelSize="+px3);
- [1.5dp 1.5sp 1.5px,density=3.0]
07-29 14:17:04.634: I/test(24588): [dp] getDimension= 4.5, getDimensionPixelOffset=4,getDimensionPixelSize=5
07-29 14:17:04.634: I/test(24588): [sp]getDimension= 4.5, getDimensionPixelOffset=4,getDimensionPixelSize=5
07-29 14:17:04.634: I/test(24588): [px] getDimension= 1.5, getDimensionPixelOffset=1,getDimensionPixelSize=2