如何以编程方式从android中的像素计算dp [英] How to calculate dp from pixels in android programmatically
本文介绍了如何以编程方式从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屋!
查看全文