移動APP測試:Android螢幕適配問題二

qq_842354603發表於2019-04-17

設計選擇性的佈局和圖片,替代資源的型別,取決於應用程式的需求。通常,應該使用尺寸和方向限定符提供選擇性的佈局資源,使用密度限定符提供選擇性的圖片資源。以下部分分別概括了該如何使用尺寸和密度限定符提供選擇性的佈局和圖片。(來源:千鋒軟體測試)

選擇性的佈局,應該確保應用程式的佈局:

· 適合在小螢幕上(確保可以實際使用)

· 在大螢幕上,確保充分利用額外的螢幕空間

· 適應豎屏和橫屏

如果使用者介面,需要讓點陣圖來適應檢視的大小(如一個按鈕的背景圖片),應該使用Nine-Patch 點陣圖檔案。Nine-Patch檔案基本上是一個PNG檔案它可以在特定的二維地區伸展。當系統需要拉伸點陣圖所在的檢視時,系統會拉伸Nine-Patch檔案,但是僅僅拉伸的是指定區域。正因為如此,不需要提供不同的螢幕尺寸不同的圖片,因為Nine-Patch的點陣圖,可以調整到任何尺寸。然而,應該為不同的螢幕密提供不同的Nine-Patch檔案。

選擇性的圖片

cb48accd49034c20897d1531257baca4.png

Figure 4. 支援各密度的點陣圖的相對大小

幾乎每個應用程式都應當為不同的螢幕密度提供圖片資源,因為幾乎每一個應用程式都擁有一個啟動圖示,而改圖示應當在不同密度的螢幕上顯示良好。

注: 只需提供密度相關的點陣圖檔案(.png, .jpg, 或者 .gif) 和 Nine-Path 檔案(.9.png)。如果需要使用XML來定義形狀,顏色或者可繪製的資源,應當在預設的drawable 目錄備份一份。

要建立不同密度的選擇性的圖片,應該在四個廣義密度之間遵循3:4:6:8的縮放比例。比如,一箇中密度下為48x48畫素的點陣圖(應用程式啟動圖示),與之對應的所有不同的尺寸應當是:

· 低密度為36x36

· 中密度為48x48

· 高密度為72x72

· 超高密度為96x96 

配置例項

為了您針對不同型別的裝置進行設計,這裡是典型的螢幕寬度的一些數字:

· 320dp: 一個典型的手機螢幕 (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, 等).

· 480dp: 像Streak一樣的中立平板螢幕 (480x800 mdpi).

· 600dp: 7”平板 (600x1024 mdpi).

· 720dp: 10”平板 (720x1280 mdpi, 800x1280 mdpi, 等).

使用表2中的尺寸限定符,應用程式可以使用任何您想要的寬度和/或高度為手機和平板之間切換不同的佈局資源。比如,如果600dp是平板佈局所支援的最小可用寬度,可以提供這兩套佈局:

res/layout/main_activity.xml           # For handsets
res/layout-sw600dp/main_activity.xml   # For tablets

在這種情況下,為了讓平板佈局實用,可用螢幕空間的最小寬度必須為600dp。

要進一步定製UI區分大小,如7“和10”平板的情況下,可以定義額外的最小寬度佈局:

res/layout/main_activity.xml          

res/layout-sw600dp/main_activity.xml  

res/layout-sw720dp/main_activity.xml  

注意,前面的兩個例子資源使用“最小寬度”限定符,sw<N>dp,它指定螢幕兩邊的最小值,無論裝置的當前方向。因此,使用sw<N>dp是簡單的通過忽略螢幕方向的方式來指定佈局的整體螢幕尺寸。

然而,在某些情況下,可能重要的是佈局究竟有多大的寬度或高度目前是可用的。例如,有兩個並排的佈局,每當螢幕寬度至少提供600dp時使用,不論裝置是否是在橫向或縱向。在這種情況下,資源看起來像這樣:

res/layout/main_activity.xml        

res/layout-w600dp/main_activity.xml  

請注意,第二組使用“可用寬度”限定符,w<N>dp。這樣,一臺裝置可能根據螢幕的方向會使用這兩種佈局(如果可用寬度在一個方向至少600dp而在另一個方向小於600dp)。

如果關注的是可用高度,那麼同樣可以使用h<N>dp限定符。甚至可以結合使用w<N>dp 和 h<N>dp 限定符。

相關文章