getDimension,getDimensionPixelOffset和getDimensionPixelSize

getDimension和getDimensionPixelOffset的功能都是获取某个dimen的值,

但是如果单位是dp或sp,则需要将其乘以density。如果是px,则不乘。

并且getDimension返回float,getDimensionPixelOffset返回int.

而getDimensionPixelSize则不管写的是dp,sp,px, 都会乘以denstiy.

代码如下:

16dp

16px

16sp

private void test Dimen() {

float a1=getResources().getDimension(R.dimen.dp_1);

int a2=getResources().getDimensionPixelOffset(R.dimen.dp_1);

int a3=getResources().getDimensionPixelSize(R.dimen.dp_1);

float b1=getResources().getDimension(R.dimen.px_1);

int b2=getResources().getDimensionPixelOffset(R.dimen.px_1);

int b3=getResources().getDimensionPixelSize(R.dimen.px_1);

float c1=getResources().getDimension(R.dimen.sp_1);

int c2=getResources().getDimensionPixelOffset(R.dimen.sp_1);

int c3=getResources().getDimensionPixelSize(R.dimen.sp_1);

Log.d("test","getDimension= "+a1+", getDimensionPixelOffset="+a2+",getDimensionPixelSize="+a3);

Log.d("test","getDimension= "+b1+", getDimensionPixelOffset="+b2+",getDimensionPixelSize="+b3);

Log.d("test","getDimension= "+c1+", getDimensionPixelOffset="+c2+",getDimensionPixelSize="+c3);

}

结果:

getDimension=24.0,  getDimensionPixelOffset=24,  getDimensionPixelSize=24

getDimension=16.0,  getDimensionPixelOffset=16,  getDimensionPixelSize=24

getDimension=24.0,  getDimensionPixelOffset=24,  getDimensionPixelSize=24

你可能感兴趣的:(getDimension,getDimensionPixelOffset和getDimensionPixelSize)