getDimension,getDimensionPixelOffset和getDimensionPixelSize

getDimension,getDimensionPixelOffset和getDimensionPixelSize

好多网上都错的,今天亲手实验了一把,把结果分享给大家。

 <dimen name="dp_01">16dp</dimen>
    <dimen name="px_01">16px</dimen>
    <dimen name="sp_01">16sp</dimen>

    <dimen name="dp_02">16.4dp</dimen>
    <dimen name="px_02">16.4px</dimen>
    <dimen name="sp_02">16.4sp</dimen>

    <dimen name="dp_03">16.6dp</dimen>
    <dimen name="px_03">16.6px</dimen>
    <dimen name="sp_03">16.6sp</dimen>
  float a11 = getResources().getDimension(R.dimen.dp_01);
        int a21 = getResources().getDimensionPixelOffset(R.dimen.dp_01);
        int a31 = getResources().getDimensionPixelSize(R.dimen.dp_01);

        float b11 = getResources().getDimension(R.dimen.px_01);
        int b21 = getResources().getDimensionPixelOffset(R.dimen.px_01);
        int b31 = getResources().getDimensionPixelSize(R.dimen.px_01);

        float c11 = getResources().getDimension(R.dimen.sp_01);
        int c21 = getResources().getDimensionPixelOffset(R.dimen.sp_01);
        int c31 = getResources().getDimensionPixelSize(R.dimen.sp_01);

        float a12 = getResources().getDimension(R.dimen.dp_02);
        int a22 = getResources().getDimensionPixelOffset(R.dimen.dp_02);
        int a32 = getResources().getDimensionPixelSize(R.dimen.dp_02);

        float b12 = getResources().getDimension(R.dimen.px_02);
        int b22 = getResources().getDimensionPixelOffset(R.dimen.px_02);
        int b32 = getResources().getDimensionPixelSize(R.dimen.px_02);

        float c12 = getResources().getDimension(R.dimen.sp_02);
        int c22 = getResources().getDimensionPixelOffset(R.dimen.sp_02);
        int c32 = getResources().getDimensionPixelSize(R.dimen.sp_02);


        float a13 = getResources().getDimension(R.dimen.dp_03);
        int a23 = getResources().getDimensionPixelOffset(R.dimen.dp_03);
        int a33 = getResources().getDimensionPixelSize(R.dimen.dp_03);

        float b13 = getResources().getDimension(R.dimen.px_03);
        int b23 = getResources().getDimensionPixelOffset(R.dimen.px_03);
        int b33 = getResources().getDimensionPixelSize(R.dimen.px_03);

        float c13 = getResources().getDimension(R.dimen.sp_03);
        int c23 = getResources().getDimensionPixelOffset(R.dimen.sp_03);
        int c33 = getResources().getDimensionPixelSize(R.dimen.sp_03);

        Log.e("test", "getDimension_a11= " + a11 + ", getDimensionPixelOffset_a21=" + a21 + ",getDimensionPixelSize_=" + a31);
        Log.e("test", "getDimension_b11= " + b11 + ", getDimensionPixelOffset_b21=" + b21 + ",getDimensionPixelSize_b31=" + b31);
        Log.e("test", "getDimension_c11 =" + c11 + ", getDimensionPixelOffset_c21=" + c21 + ",getDimensionPixelSize_c31=" + c31);

        Log.e("test", "getDimension_a12 =" + a12 + ", getDimensionPixelOffset_a12=" + a22 + ",getDimensionPixelSize_a32=" + a32);
        Log.e("test", "getDimension_b12= " + b12 + ", getDimensionPixelOffset_b22=" + b22 + ",getDimensionPixelSize_b32=" + b32);
        Log.e("test", "getDimension_c12= " + c12 + ", getDimensionPixelOffset_c22=" + c22 + ",getDimensionPixelSize_c32=" + c32);

        Log.e("test", "getDimension_a13= " + a13 + ", getDimensionPixelOffset_a23=" + a23 + ",getDimensionPixelSize_a33=" + a33);
        Log.e("test", "getDimension_b13= " + b13 + ", getDimensionPixelOffset_b23=" + b23 + ",getDimensionPixelSize_b33=" + b33);
        Log.e("test", "getDimension_c13= " + c13 + ", getDimensionPixelOffset_c23=" + c23 + ",getDimensionPixelSize_c33=" + c33);

LogCat中查看输出结果:

Device (1080*120,density=3.0): 
getDimension_a11= 48.0, getDimensionPixelOffset_a21=48,getDimensionPixelSize_=48
getDimension_b11= 16.0, getDimensionPixelOffset_b21=16,getDimensionPixelSize_b31=16
getDimension_c11 =48.0, getDimensionPixelOffset_c21=48,getDimensionPixelSize_c31=48
getDimension_a12 =49.19998, getDimensionPixelOffset_a12=49,getDimensionPixelSize_a32=49
getDimension_b12= 16.399994, getDimensionPixelOffset_b22=16,getDimensionPixelSize_b32=16
getDimension_c12= 49.19998, getDimensionPixelOffset_c22=49,getDimensionPixelSize_c32=49
getDimension_a13= 49.799927, getDimensionPixelOffset_a23=49,getDimensionPixelSize_a33=50
getDimension_b13= 16.599976, getDimensionPixelOffset_b23=16,getDimensionPixelSize_b33=17
getDimension_c13= 49.799927, getDimensionPixelOffset_c23=49,getDimensionPixelSize_c33=50

结论

  1. getDimensionPixelSize() 是返回”四舍五入”的int值.
    getDimensionPixelOffset() 是返回”下限”的int值.
  2. getDimension 和 getDimensionPixelOffset和getDimensionPixelSize 单位是dp或sp,则需要将其乘以density;如果是px则不乘;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值