美文网首页
getDimension,getDimensionPixelO

getDimension,getDimensionPixelO

作者: Longmaxie | 来源:发表于2016-07-21 14:00 被阅读231次

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

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

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

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

代码如下:

<dimen name="dp_1">16dp</dimen>

<dimen name="px_1">16px</dimen>

<dimen name="sp_1">16sp</dimen>

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,getDimensionPixelO

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