以编程方式在android中准确地将dp转换为px

时间:2016-08-31 07:57:31

标签: android pixel

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; 
}

取自here

这两者有什么不同?

1 个答案:

答案 0 :(得分:1)

差异在于舍入值和截断值。

4.6的舍入将导致5
截断4.6将导致4

它与Android无关,基本上是代数,而不是编程问题。