tech-sjh

2010年9月14日 星期二

Android 在高解析度畫面的處理方式

Samsung Galaxy Tab 採用 Android 作業系統後引起鄉民的廣大迴響,也值
得 Android 開發者好好警惕,主要原因是 Android 原本就不是設計給平板
電腦這類裝置使用,令人安心的大多數的應用程式仍然可以直接套用,潛
在的問題也很容易解決。以下我們提出一個不只適用於平板電腦,也可以
應用在各式各樣產品的解決方案:

這個平板電腦規格如下:
畫面解析度 1024x600,第一個有超過上千畫素的解析度
大多數人都會抓住他的兩旁,橫著使用。

我們建議開發者花時間仔細研讀 supporting multiple screens 一文,我們
也將會在持續改善該文章內容。Dan Morrill 的One Screen Turn Deserves
Another 博客文章,也可以適用於直立式使用的情況。

像素密度的意義

當要開發應用程式的外觀時,主要是設計版面跟使用的圖資,而這兩項外
觀重要原素就牽扯到螢幕的像素密度、尺吋大小、橫放或直立使用三因素
。如果想要設及時髦又漂亮的外觀設計,則必須要完全理解這三個元素。

在三星的這個例子中有另一個意外的地方是他採用遠超過 Android 設定
的 170 DPI,當然這是為了在該平板電腦上有更好畫面的設定。在大螢
幕上如果設計不良很容易讓螢幕空曠區太大,中等解析度時按鍵與圖標
之間距離太遠,但在高解析度時 Android 框架的擴展方式讓該產品畫面
更漂亮。

身為業餘攝影師我想到拍照時的光圈、ISO、快門設定問題。當你想拍
攝一位舞者,就必須加大光圈、ISO 調得更敏銳、快門加速等技巧。同
樣的三星的 Galaxy Tab 使用較大螢幕就必須用更高解析度。

好消息是 Android 框架的程式碼判斷足夠判斷出該產品的最佳畫面,
LifeSaver2 的應用程式畫面表現很棒,上面是在 Nexus One 下圖則是
Galaxy Tab:

只要你確保提供三種不同解析度圖資,Android 框架就可以找到適合的擴展
方式。

可能出錯的地方(你無法預期應用程式跑在哪一種螢幕上)

採用絕對值的 layout
採用絕對值畫素而非無關像素密度的設定
自行計算螢幕大小、自行載入圖資、而非經由框架載入

逃出鞋盒

參考 supports-screens 我們建議你採用以下設定:


<supports-screens android:largeScreens="true" android:anyDensity="true" />


在 API 版本 4 以前的預設值都是 false,如此設定後在大多情況下都可以
得到理想的畫面輸出。


測試

如果要確保畫面輸出,最好還是用模擬器輸出測試過,三星也有提供相
關的外掛(add-on)讓你更容易測試。

幹嘛管這麼多?

主要是因為 Android 本來就只是設計給手機用的平台,為了因應現在的
應用變化,才加入後續的調整與應用。但也拓展了你的應用程式可以應
用在各種產品上的可能性。

原文網址:

Screen Geometry Fun

沒有留言:

張貼留言

版權宣告、免責聲明


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際 授權條款授權.
免責聲明: 本文所載資料僅供參考,並不構成投資建議,
讀者閱讀或使用該資料所導致結果需要自擔風險與責任,
作者概不承擔閱讀人行為之任何風險與責任。
除非有特別宣稱,作者言論並不代表所屬任何團體、公司、或其他人意見。