以编程方式将 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没有关系,基本上是代数,不是编程题。