May*_*wal 1 android interface android-layout android-edittext
当我们想在Android中更改EditText的宽度时,我们使用以下代码行:
int px =(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,200,r.getDisplayMetrics());
有人可以解释这是如何工作的,TypedValue.COMPLEX_UNIT_DIP返回什么?
COMPLEX_UNIT_DIP指定编号所指的度量单位。您写的内容翻译为“ 200 DIP”。我相信您知道DIP是什么。如果是COMPLEX_UNIT_SP,则200会被翻译为“ 200 SP”
这是applyDimension的源代码:
public static float applyDimension(int unit, float value,
DisplayMetrics metrics)
{
switch (unit) {
case COMPLEX_UNIT_PX:
return value;
case COMPLEX_UNIT_DIP:
return value * metrics.density;
case COMPLEX_UNIT_SP:
return value * metrics.scaledDensity;
case COMPLEX_UNIT_PT:
return value * metrics.xdpi * (1.0f/72);
case COMPLEX_UNIT_IN:
return value * metrics.xdpi;
case COMPLEX_UNIT_MM:
return value * metrics.xdpi * (1.0f/25.4f);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |