以编程方式将 android 中的 dp 准确转换为 px
Accurate conversion of dp to px in android programatically
public int dpToPx(int dp, Context context) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
return px;
}
取自here
public int dpToPx(float dp, Context context) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, displayMetrics);
return px;
}
取自
这两者有什么区别?
区别在于舍入值和截断值。
4.6
的四舍五入将导致 5
截断 4.6
将导致 4
.
确实和Android
没有关系,基本上是代数,不是编程题。
public int dpToPx(int dp, Context context) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
return px;
}
取自here
public int dpToPx(float dp, Context context) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, displayMetrics);
return px;
}
取自
这两者有什么区别?
区别在于舍入值和截断值。
4.6
的四舍五入将导致 5
截断 4.6
将导致 4
.
确实和Android
没有关系,基本上是代数,不是编程题。