我不懂TypedValue

时间:2013-02-24 19:17:17

标签: android

为:

  

(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

1 个答案:

答案 0 :(得分:0)

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

它只是将值转换为系统将使用的值,具体取决于当前密度。我假设您使用hdpi屏幕执行此操作,因为hdpi的密度因子为4/3。尝试使用mdpi,它可能会以1.0结尾,因为它不需要转换。