1. 程式人生 > >Android同一裝置DPI數值大小與顯示大小的關係

Android同一裝置DPI數值大小與顯示大小的關係

  今天在用genymotion模擬器時,發現在相同解析度(720*1280)下有不同的dpi,於是好奇地啟動了一下不同的dpi,竟然發現在相同解析度下dpi越大,顯示的內容越大,相同的內容竟然顯示不全了。這與window顯示解析度正好相反。

  1. 這是720*1280解析度下的160dpi顯示的情況:
    這是720*1280解析度下的160dpi顯示的情況
  2. 這是720*1280解析度下的320dip顯示的情況
    這是720*1280解析度下的320dip顯示的情況

      於是好奇心就上來了,開始分析dpi的計算由來。dpi是每英寸的畫素點數,也就是總共的畫素數除以英寸數。而720*1280畫素數已定,英寸數也是已定,於是又拿自己的手機修改dpi測試一下,還是一樣的結果。
      思考了好久,才終於想通。Android系統在開發中用到的是dp(Density independent pixels ),即裝置無關畫素。也就是在不同的裝置下的同一控制元件顯示的畫素數是不同的。dp在不同裝置下對應的畫素數由公式:dp=(dpi/160)*px。其中160是mdpi對應的數值。當dpi越大,一個dp在同一裝置中佔用的px越多,同一個控制元件顯示也就越大。