为:
(metrics.density)密度:1.0(metrics.densityDpi)密度Dpi:160
区别:
float mm_1 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 1, getResources().getDisplayMetrics());
和
float mm_2 = 1 * metrics.densityDpi * (metrics.density/25.4f);
为什么会出现这种差异?
mm_1 = 1.33333333
mm_2 = 6.2992125
答案 0 :(得分:0)
TypedValue.applyDimension()
不会从单位转换为英寸(根据25.4
,我假设您正在尝试这样做。)
它只是将值转换为系统将使用的值,具体取决于当前密度。我假设您使用hdpi
屏幕执行此操作,因为hdpi
的密度因子为4/3
。尝试使用mdpi
,它可能会以1.0结尾,因为它不需要转换。