當前位置:編程學習大全網 - 網站源碼 - android中pt怎麽轉成sp

android中pt怎麽轉成sp

先看下TypedValue.appplyDimension的源碼

[mw_shl_code=java,true]public static float applyDimension(int unit, float value, DisplayMetrics metrics) {

switch (unit) {

case COMPLEX_UNIT_PX:

return value;

case COMPLEX_UNIT_DIP:

return value * metrics.density;

case COMPLEX_UNIT_SP:

return value * metrics.scaledDensity;

case COMPLEX_UNIT_PT:

return value * metrics.xdpi * (1.0f/72);

case COMPLEX_UNIT_IN:

return value * metrics.xdpi;

case COMPLEX_UNIT_MM:

return value * metrics.xdpi * (1.0f/25.4f);

}

return 0;

}[/mw_shl_code]

從代碼中可以看到pt轉px和sp轉px的方法,所以轉換成px再轉成sp就可以了,可以自己寫個方法壹次轉換啦:

[mw_shl_code=java,true]value * metrics.xdpi * (1.0f/72) / metrics.scaledDensity = value * metrics.xdpi * (1.0f/(72 * metrics.scaledDensity);[/mw_shl_code]

不然先算出px再從px算pt的話有兩次精度損失。

  • 上一篇:酒店VOD,VOD視頻點播系統功能有哪些?
  • 下一篇:linux c語言 編譯.o時,提示:undefined reference to `main'
  • copyright 2024編程學習大全網