由于一些奇怪的原因,我无法从下面的函数中获得正确的输出,我知道我做了一些愚蠢的错误,但不确定,
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);
输出是一个巨大的数字,这是不期望的,任何帮助都非常赞赏。
答案 0 :(得分:5)
使用此
int pixels = getResources().getDimensionPixelSize(R.dimen.button_left_right_margin);
答案 1 :(得分:1)
希望它会对你有所帮助: -
public static int convertDpIntoPx(Context mContext, float yourdpmeasure) {
if (mContext == null) {
return 0;
}
Resources r = mContext.getResources();
int px = (int) TypedValue
.applyDimension(TypedValue.COMPLEX_UNIT_DIP, yourdpmeasure, r.getDisplayMetrics());
return px;
}
答案 2 :(得分:0)
希望这会对你有所帮助。
public static int dpToPx(int dp) {
DisplayMetrics displayMetrics = BaseApplication.appContext.getResources().getDisplayMetrics();
int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
return px;
}