android - 如何以编程方式从android中的像素计算dp

标签 android android-layout resolution

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

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

最佳答案

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

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 - 如何以编程方式从android中的像素计算dp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8295986/

相关文章:

java - 为什么在android中命名资源不能使用大写?

android - 无法设置所选抽屉项目的背景颜色

ios - 有没有办法生成更详细的图像?

android - 在 RatingBar 上调用 getProgressDrawable() 仅显示一颗星

android - 提高安卓开发速度

android - 在 Android 弹出窗口中输入数据

android日志信息是 “W/OpenGLRenderer: Incorrectly called buildLayer on View”,这是什么意思?

iphone - 相对于 iPad 和 iPhone 放置图像

.net - Bitmap.Height和VerticalResolution之间的区别

android - Android 上的 "nuclear-pub"设备是什么?