美文网首页
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