APP開發(fā)實(shí)戰(zhàn)174-Android7.0的屏幕縮放功能對APP的影響
Android 7.0 支持用戶設(shè)置顯示尺寸,以放大或縮小屏幕上的所有元素,從而提升設(shè)備對視力不佳用戶的可訪問性。用戶無法將屏幕縮放至低于最小屏幕寬度 sw320dp,該寬度是 Nexus 4 的寬度,也是常規(guī)中等大小手機(jī)的寬度。

圖 右側(cè)屏幕顯示的是一臺運(yùn)行 Android 7.0 系統(tǒng)映像的設(shè)備增大顯示尺寸后的效果。
當(dāng)設(shè)備密度發(fā)生更改時,系統(tǒng)會以如下方式通知正在運(yùn)行的應(yīng)用:
如果是面向 API 級別 23 或更低版本系統(tǒng)的應(yīng)用,系統(tǒng)會自動終止其所有后臺進(jìn)程。這意味著如果用戶切換離開此類應(yīng)用,轉(zhuǎn)而打開 Settings 屏幕并更改 Display size 設(shè)置,則系統(tǒng)會像處理內(nèi)存不足的情況一樣終止該應(yīng)用。如果應(yīng)用具有任何前臺進(jìn)程,則系統(tǒng)會如處理運(yùn)行時更改中所述將配置變更通知給這些進(jìn)程,就像對待設(shè)備屏幕方向變更一樣。
如果是面向 Android 7.0 的應(yīng)用,則其所有進(jìn)程(前臺和后臺)都會收到有關(guān)配置變更的通知,如處理運(yùn)行時更改中所述。
大多數(shù)應(yīng)用并不需要進(jìn)行任何更改即可支持此功能,不過前提是這些應(yīng)用遵循 Android 最佳做法。具體要檢查的事項(xiàng):
在屏幕寬度為 sw320dp 的設(shè)備上測試您的應(yīng)用,并確保其充分運(yùn)行。
當(dāng)設(shè)備配置發(fā)生變更時,更新任何與密度相關(guān)的緩存信息,例如緩存位圖或從網(wǎng)絡(luò)加載的資源。當(dāng)應(yīng)用從暫停狀態(tài)恢復(fù)運(yùn)行時,檢查配置變更。
注:如果您要緩存與配置相關(guān)的數(shù)據(jù),則最好也包括相關(guān)元數(shù)據(jù),例如該數(shù)據(jù)對應(yīng)的屏幕尺寸或像素密度。保存這些元數(shù)據(jù)便于您在配置變更后決定是否需要刷新緩存數(shù)據(jù)。
避免用像素單位指定尺寸,因?yàn)橄袼夭粫S屏幕密度縮放。應(yīng)改為使用與密度無關(guān)像素 (dp) 單位指定尺寸。