您的位置:首页 > 移动开发 > Android开发

getDimension,getDimensionPixelOffset和getDimensionPixelSize

2016-10-27 15:02 435 查看

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().getDime
97ab
nsion(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


结论

getDimensionPixelSize() 是返回”四舍五入”的int值.

getDimensionPixelOffset() 是返回”下限”的int值.

getDimension 和 getDimensionPixelOffset和getDimensionPixelSize 单位是dp或sp,则需要将其乘以density;如果是px则不乘;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dp android sp px Dimension
相关文章推荐