我有一个使用画布绘制的图像。我在画布上标记了两个点和它们之间的一条线。我需要计算线的长度或两点之间的距离。 我使用公式Math.sqrt((x2-x1)(x2-x1)+(y2-y1)(y2-y1))来计算两点之间的距离,得到像250.82这样的值或者所以。结果值以像素为单位。如何将它们转换为公制值或以mm和cm为单位?我在网上发现了许多像素到厘米的计算器,但是它们给出了错误的答案,它与两点之间的实际距离不匹配。有人可以帮我吗?
答案 0 :(得分:1)
您可以使用:
public static float getRealCm(int pixels, DisplayMetrics displayMetrics)
{
float dpi = (float) displayMetrics.densityDpi;
float inches = pixels / dpi;
return inches * 2.54f; //inches to cm
}
DisplayMetrics
可以从Resources
获得。您可以在活动中写下:getResources().getDisplayMetrics()