【发布时间】:2018-02-09 05:15:48
【问题描述】:
由于某些奇怪的原因,我无法从下面的函数中获得正确的输出,我知道我犯了一些愚蠢的错误,但不确定,
public static int convertDpToPixel(int dp, Context context){
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dp,context.getResources().getDisplayMetrics());
return Math.round(px);
}
我将函数称为 - gen_function.convertDpToPixel(R.dimen.button_left_right_margin,this);
输出是一个巨大的数字,这是意料之外的,非常感谢任何帮助。
【问题讨论】:
-
使用
public static float convertDpToPixel(float dp, Context context) { Resources resources = context.getResources(); DisplayMetrics metrics = resources.getDisplayMetrics(); float px = dp * ((float) metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT); return px; }