如何以编程方式从android中的像素计算dp [英] How to calculate dp from pixels in android programmatically

查看:25
本文介绍了如何以编程方式从android中的像素计算dp的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想以编程方式从 px 计算 dp.怎么做?我从以下位置获得解决方案:

I want to calculate dp from px programmatically. How to do it? I get resolution from:

DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
ht = displaymetrics.heightPixels;
wt = displaymetrics.widthPixels;

推荐答案

这里的所有答案都显示了 dp->px 转换而不是 px->dp,这是 OP 要求的.请注意 TypedValue.applyDimension 不能用于转换 px->dp,为此您必须使用此处描述的方法:https://stackoverflow.com/a/17880012/504611(为方便起见,在下面引用).

All the answers here show a dp->px conversion rather than px->dp, which is what the OP asked for. Note that TypedValue.applyDimension cannot be used to convert px->dp, for that you must use the method described here: https://stackoverflow.com/a/17880012/504611 (quoted below for convenience).

fun Context.dpToPx(dp: Int): Int {
    return (dp * resources.displayMetrics.density).toInt()
}

fun Context.pxToDp(px: Int): Int {
    return (px / resources.displayMetrics.density).toInt()
}

这篇关于如何以编程方式从android中的像素计算dp的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆