本文並非關於引導畫面該采用何種形式、該如何定義信息、有什麼注意事項方面的介紹。
本文描述的是,引導畫面該如何才能較好的適配各種分辨率,了解此處有助於更好的定義引導畫面,以及保持同設計師、工程師的良好溝通。
作為產品人員,需要向不同方向延伸了解一些知識,這些知識能讓溝通更順暢。
這些所了解的知識,可能會有一些錯誤,當發現問題時,隨時更新自己的知識體系。
一、本文提到的引導畫面的形式
類似下圖,一個引導畫面是一屏,左右拖動來切換
圖1: 有道雲筆記Android 1.2.0引導畫面
圖2:有道雲筆記Android 2.0.0引導畫面
二、實現方式之一:底色配合圖片縮放
需要知道的是,同一DPI的設備也有不同的分辨率,比如Hdpi最常見的就有480×800和480×854的分辨率,還有其他的,比如480×640、600×1024….
因此,想對不同dpi做一種分辨率的方法,會存在問題。
我嘗試用圖來說明一下一張圖片,如果不做處理在不同機器和不同分辨率上的顯示樣式:
以Galaxy Nexus為例,屏幕分辨率為720×1280,狀態欄為50px,下方虛擬鍵盤欄為96px,所以實際中間圖片大小為720×1134
2.1 在不同分辨率下的顯示樣式
讓我們模擬下此720×1134的引導圖在720×1280分辨率的設備上的顯示樣式如下圖:
圖A:720×1134的引導圖在720×1280設備的顯示樣式
當我們在一台480×800分辨率的設備上顯示時,圖片會縮小為480px的寬度顯示,此時高度對應會等比縮小為756px顯示,假設此時狀態欄標准高度為38px,則會空余16px的空間。如果我們設置背景顏色為紅色,則此時顯示狀態如下圖:
圖B:720×1134的引導圖在480×800設備的顯示樣式
同理,當我們在一台320×480分辨率的設備上顯示時,假設此時狀態欄標准高度為25px,等比縮放後,圖片會縮小為455px(480-25) 的高度顯示,此時寬度對應會等比縮小為289px顯示,則會空余31px的空間。如果我們設置背景顏色為紅色,則此時顯示狀態如下圖:
圖C:720×1134的引導圖在320×480設備的顯示樣式
不再繼續多舉例了。
2.2 適配方案
從上述的例子來看,大圖自動縮放後,最大的問題是上下、或左右會留出一些無法填充的位置。
所以,在邊緣為純色的情況下,我們只需要將背景填充為和邊緣顏色一樣的色值即可。
而且,我們只需要准備較大分辨率的一套,這樣可以更好的保證在不同解析度設備上的效果。
2.3 缺陷
下圖是在240×320的ldpi設備上的顯示效果,如果仔細看,可以看到左右兩側豎向的顏色和中間部分的顏色有一些不一致。
原因還不確定,暫時未有明確結論,猜測可能和android的圖像縮小顯示機制有關系。
3.4 示例
(1) 有道雲筆記Android 2.0.0的引導畫面切圖
(2) Android 2.0.0中的適配
√ 圖片的周邊保證是純色的,這樣才能有效的進行不同分辨率的適配。
√ 指定了720×1280的機器為標准參照設備,切出去除了虛擬鍵盤和狀態欄的部分
√ 設定引導界面的背景色為和邊緣色一致的顏色
三、實現方式之二:9-Patch
3.1 適配方案
前提:
√ 為了保證四邊的縮放效果,邊緣需要設定為純色。
√ 為保證縮放效果,采用xhdpi的圖片素材來做9-Patch的原始圖片
適配:
√ 在draw 9-patch中,設定圖片頂部的左側和右側一個像素為拉伸區域,設定圖片右側的頂部和底部一個像素為拉伸區域。
結果:
√ 類似實現方式一的圖像示例,只是適配中出現的紅色部分,會因為設定了拉伸區域而自動用設定的拉伸區域去填充,從而達到適配效果
3.2 缺陷
目前發現當圖片較大時,9-Patch的圖片縮放會出現問題,未能按照預期縮放。
3.3 示例
有道雲筆記Android 1.2.0的引導畫面采用9-Patch的方式實現,見圖1
四、實現方式之三:透明引導圖
4.1 適配方案
√ 提供背景透明的引導圖
√ 提供背景的色值
√ 填充背景色,並放置背景透明的引導圖
4.2 缺陷
png的圖會比jpg的圖大一些
五、小結
方式三是目前傾向采用的方式,本文如有進一步的實踐信息,再予以補充。
上述描述和理解中,可能存在錯誤和問題,如有不當,敬請指出。 (完)
文章來源:penddy.com