大部分利用標準 UI 模塊的 App 都會靈活適配不同的屏幕。官方文檔對這方面也作出了詳細的解釋。但是,開發者可能要花多一點心思去適配很多遊戲或 App 裡的自定義界面。其中一個比較普遍的問題是對於屏幕縱橫比作出錯誤的假設。以下列出幾項比較典型的問題,以作參考。
屏幕的上下、左右邊緣可能會被裁剪,導致 UI 整體看起來不完整。
觸摸點擊區和 UI 模塊(如:按鈕)不對齊,從而困惑用戶。
在圓角屏幕設備上的全屏模式,任何非常靠近角落的 UI 元素都可能位於彎曲的可視角度區域之外。假設一個電商 App 的 「下單」 功能受到類似問題的影響,這就是一個大問題了。建議大家參考 Material Design 指南,在布局上留下大概 16dp 的邊緣空間。
如果響應式 UI 不適合您的場景,作為最後一步,考慮按照以下方式聲明最大支持縱橫比。 在特長屏幕的設備上,兼容模式會將應用邊緣的顯示空間以填充。
針對 API level 26 或以上: 利用 android:maxAspectRatio 屬性。
針對 API level 25 或以下: 利用 android.max_aspect meta-data。
需要注意的一點是最大支持縱橫比的值只對不支持 resizableActivity 的 Activity 才有效。
請參閱文檔的細節:
https://developer.android.google.cn/guide/practices/screens_support.html#MaxAspectRatio