getDimension,getDimensionPixelOffset和getDimensionPixelSize

来源:互联网 发布:岗位优化人员优化方案 编辑:程序博客网 时间:2024/05/16 23:54

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_=48getDimension_b11= 16.0, getDimensionPixelOffset_b21=16,getDimensionPixelSize_b31=16getDimension_c11 =48.0, getDimensionPixelOffset_c21=48,getDimensionPixelSize_c31=48getDimension_a12 =49.19998, getDimensionPixelOffset_a12=49,getDimensionPixelSize_a32=49getDimension_b12= 16.399994, getDimensionPixelOffset_b22=16,getDimensionPixelSize_b32=16getDimension_c12= 49.19998, getDimensionPixelOffset_c22=49,getDimensionPixelSize_c32=49getDimension_a13= 49.799927, getDimensionPixelOffset_a23=49,getDimensionPixelSize_a33=50getDimension_b13= 16.599976, getDimensionPixelOffset_b23=16,getDimensionPixelSize_b33=17getDimension_c13= 49.799927, getDimensionPixelOffset_c23=49,getDimensionPixelSize_c33=50

结论

  1. getDimensionPixelSize() 是返回”四舍五入”的int值.
    getDimensionPixelOffset() 是返回”下限”的int值.
  2. getDimension 和 getDimensionPixelOffset和getDimensionPixelSize 单位是dp或sp,则需要将其乘以density;如果是px则不乘;
0 0
原创粉丝点击