android - 多螢幕適配相關

來源:互聯網
上載者:User

標籤:android   style   blog   http   color   使用   strong   檔案   

 

1、基本概念

螢幕大小(screen size) – 螢幕的實際大小,用螢幕對角線長度來衡量(比如3.4寸,3.8寸)。android把螢幕分為以下4種:small,normal,large,extra large。
怎麼判斷?

螢幕密度(Screen Density) - 一塊實際的螢幕地區有多少個像素,一般用dpi衡量(每英寸有多少個點)。相比起medium、high螢幕密度的裝置,在一塊確定大小的螢幕地區l密度為low的螢幕擁有的像素更少。android把螢幕密度分為4種:low,medium,high,extra high。

如何判斷是ldpi,mdpi,hdpi?

方向(orientation) - 螢幕方向分為landscape(橫屏)和portrait(豎屏)。

解析度(Resolution) -  螢幕上的總實際像素數。對螢幕進行適配時,一般不關注它的解析度,只關注它的螢幕大小和密度。

與密度無關的像素(Density-independent pixel,dp或dip) -  為了保證你的UI適合不同的螢幕密度,建議你採用dp來定義程式UI。
它的計算方法為:px = dp * (dpi / 160)

sp(scale-independent pixel)

如何分辨一個螢幕是ldpi、mdpi、hdpi的方法,見

2、怎樣適配多種螢幕

a.在manifest裡定義你的程式支援的螢幕類型,相應代碼如下:

<supports-screens android:resizeable=["true"| "false"]android:smallScreens=["true" | "false"]   //是否支援小屏android:normalScreens=["true" | "false"]  //是否支援中屏android:largeScreens=["true" | "false"]   //是否支援大屏android:xlargeScreens=["true" | "false"]  //是否支援超大屏android:anyDensity=["true" | "false"]    //是否支援多種不同密度的螢幕android:requiresSmallestWidthDp=”integer”android:compatibleWidthLimitDp=”integer”android:largestWidthLimitDp=”integer”/>

 

b.對不同大小的螢幕提供不同的layout。

      比如,如果需要對大小為large的螢幕提供支援,需要在res目錄下建立一個檔案夾layout-large/並提供layout。當然,也可以在res目錄下建立layout-port和layout-land兩個目錄,裡面分別放置豎屏和橫屏兩種布局檔案,以適應對橫屏豎屏自動切換。

c.對不同密度的螢幕提供不同的圖片。
  應盡量使用點9格式的圖片,如需對密度為low的螢幕提供合適的圖片,需建立檔案夾drawable-ldpi/,並放入合適大小的圖片。相應的,medium對應drawable-mdpi /,high對應drawable-hdpi/,extra high對應drawable-xhdpi/。
圖片大小的確定:low:medium:high:extra high比例為3:4:6:8。舉例來說,對於中等密度(medium)的螢幕你的圖片像素大小為48×48,那麼低密度(low)螢幕的圖片大小應為36×36,高(high)的為72×72,extra high為96×96。

3、多螢幕適配的4條黃金原則
a.在layout檔案中設定控制項尺寸時應採用wrap_content,fill_parent和dp。

       具體來說,設定view的屬性android:layout_width和android:layout_height的值時,wrap_content,fill_parent或dp比pix更好。相應地,為了使文字大小更好的適應螢幕應該使用sp來定義文字大小。

b.在程式的代碼中不要出現具體的像素值。

為了使代碼簡單,android內部使用pix為單位表示控制項的尺寸,但這是基於當前螢幕基礎上的。為了適應多種螢幕,android建議開發人員不要使用具體的像素來表示控制項尺寸。

c.不要使用AbsoluteLayout(android1.5已廢棄) 。相應地,應使用RelativeLayout。

d.對不同的螢幕提供合適大小的圖片。見上面第2部分。

4、需要注意的地方
以上設定適用於android3.2以下的版本。

5、怎樣測試你的程式是否支援多螢幕適配
一般使用AVD Manager建立多個不同大小的模擬器,如

 更多參考資料:http://www.cnblogs.com/laxlerbo/p/3868003.html

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.