也談android螢幕多解析度下開發

來源:互聯網
上載者:User

原文地址:http://www.rickystudio.org/android/multipx.html
應用程式的適配多解析度,是個很重要的問題,UI的設計,很令人頭痛。。。。。

隨著時間的推移,android手機應用的開發人員,慢慢會受到以下困擾,目前市場上android作業系統的手機解析度不統一,我們開發的產品能否在不同的解析度下良好的工作,最起碼不至於面目全非,確實是我們比較頭疼的問題,本文將帶你一步步解決這個問題。

    首先我們介紹幾個概念,都是一些專業術語,但對大家來說並不陌生。準備好了嗎?開始了…

  1. dpi(Dots Per Inch,點每英寸):  是指輸出解析度,針對於輸出裝置而言的,在這裡是指每英寸的物理光點數,用來表示手機的解析度,可以反映螢幕的清晰度。
  2. ppi(Pixels Per Inch,像素每英寸):  是指輸入解析度,針對於輸入裝置而言的,映像ppi值越高,畫面的細節就越豐富,因為單位面積的像素數量更多,數位相機拍出來的圖片常見的有72ppi,180ppi和300ppi等。
  3. dip(Device Independent Pixels,裝置獨立像素):  不同裝置有不同的顯示效果,這個和裝置硬體有關,一般我們為了支援WVGA、HVGA和QVGA 推薦使用這個,不依賴像素。(VGA在這是指像素總數640*480)  
  4. density像素密度:   android中160DPI密度係數是1。(個人感覺這裡和dpi是一個概念,只是單位不同)

    這裡提到的WVGA、HVGA、QVGA,通常被表示為手機的解析度,實則不然。率中文字典中的解釋為比值,兩數之比。VGA只是一個數值,不是一個比值。而上文提到的dpi確是一個比值。它的計算方法為:dpi=對角線的像素值/螢幕尺寸。

    實戰篇    布局中使用dip,在layout.xml中使用dp單位,比如10dp。如果在java代碼中則需要通過一個計算。首先計算出螢幕的density :  

    如果你的圖片大小是10*20像素,那麼實際顯示 widthpx = 10*density,heightpx = 20*density。 我們也需要為android手機提供3套布局檔案和3套UI表徵圖。 

    總結,如果要考慮螢幕大小, 需要以320*480的螢幕為參照,但是即使是這樣, 對於更小的螢幕還是會有問題。所以, 看你要支援的最小螢幕是什麼, 就按照最小螢幕來編程。以上僅代表本人觀點,如果錯誤請留言指正。

如:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.