0

至:

(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
4

1 回答 1

0

TypedValue.applyDimension()不会从单位转换为英寸(我假设您正在尝试这样做,基于25.4)。

它只是将值转换为系统将使用的值,具体取决于电流密度。我假设您正在使用hdpi屏幕来执行此操作,因为密度因子hdpi4/3. 用 a 试试mdpi,它可能最终会是 1.0,因为它不需要转换。

于 2013-02-24T19:32:14.890 回答