2013-04-13 40 views
1

我想要将像素精确地转换为英寸和毫米。 我曾尝试使用displayMetrics的所有属性,但未能成功获取移动设备中的确切物理单位。 我还试图用TypedValue.applyDimension但由于文档是没有多少解释仍然是不吉利的.. 任何人都可以给我建议,甚至给我一个小提示...提前Android将像素转换为inchec,毫米

感谢

编辑 这是代码我试图与displayMetrics

displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

,当我试图通过使用 获得每英寸像素数或displayMetrics.xdpi 我没有得到确切的值,因为我通过在画布上绘制了很长的一行来检查它,并用实际的标尺进行了检查。

+0

你能告诉的代码,并没有使用'DisplayMetrics'工作的一个片段? –

+0

你试过这个吗? http://stackoverflow.com/a/8657132/1438733 – Eric

+0

@Eric感谢response..and是的,我曾尝试与IN,MM,DIP等代码..但没有运气 –

回答

1

试试这个

DisplayMetrics mDisplayMetric = this.getApplicationContext().getResources().getDisplayMetrics(); 
float anyPixel = View.getMeasuredWidth(); //you can get Pixel from anywhere, it is a example from view 
float widthInches = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_IN, size.x, mDisplayMetric);