close
這篇主要介紹各單位轉px
dp轉px, sp轉px, pt轉px, in轉px, mm轉px的方法
而單位不熟的可以參考[Android] 5-1 單位介紹 - dp, dip, dpi, sp, pt, px, mm, in
1. 主要是用官方的TypedValue的applyDimension (int unit, float value, DisplayMetrics metrics)
unit 是 要被轉換值的單位
value 是 要被轉換的值
metrics 是 螢幕的資訊metrics
2. 接著創一個新專案, 連到applyDimension的methid,
可以看到他的公式,
而第一個參數單位就如下所示
COMPLEX_UNIT_PX:
COMPLEX_UNIT_DIP:
COMPLEX_UNIT_SP:
COMPLEX_UNIT_PT:
COMPLEX_UNIT_IN:
COMPLEX_UNIT_MM:
3. 假設要知道 20dp 在該螢幕下是 ? px
使用方法如下
float px = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, //原本單位的類別
20, //原本單位的值
getResources().getDisplayMetrics()); //現在銀幕的 metrics
4. 最後log會秀出在該螢幕下20dp 約等於 26px
最後可以參考網路的一些文章
Tony的 教你如何dp和px互相轉換
http://blog.tonycube.com/2013/07/android-dp-px-dp-px-exchange.html
stackoverflow上相關的討論議題, 可以看看不同的轉換方法
http://stackoverflow.com/questions/4605527/converting-pixels-to-dp
文章標籤
全站熱搜