Overscan 概念
Overscan(過掃描)是一種獨(dú)特的調(diào)整畫面顯示效果的方法颗祝,常見于老式電視機(jī)习寸。它是通過裁剪畫面外邊緣的方式寂曹,將所需顯示的內(nèi)容填滿整個(gè)電視屏幕爱态,以達(dá)到全屏顯示的要求。
Android 的 Overscan
如今的電視大多是基于 Android 系統(tǒng)的智能電視蜡励,因此 Google 也提供了與 Overscan 相關(guān)的 API令花,讓開發(fā)者可以通過 Overscan 值的設(shè)置,使得所開發(fā)的應(yīng)用在不同的電視上都能以最佳的顯示效果呈現(xiàn)給用戶巍虫。
Android 可通過 wm 工具中的 wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
命令設(shè)置用于顯示的 Overscan 區(qū)域鳍刷,例如執(zhí)行 wm overscan 50,50,50,50
命令后占遥,會(huì)將顯示界面往里縮小 50
像素;若將 50
改為 -50
输瓜,則顯示界面會(huì)往外擴(kuò)大 50
像素瓦胎。
Tasker 實(shí)現(xiàn) wm overscan 命令的原理
通過反射的方式調(diào)用 wm 工具中的 setOverscan
方法
Tasker 項(xiàng)目說明
Overscan
- 任務(wù)
-
*setOverscan
主任務(wù),用于設(shè)置 Overscan 參數(shù) 1: 顯示邊緣距離屏幕邊緣的左側(cè)尤揣、上側(cè)搔啊、右側(cè)、下側(cè)的 4 個(gè)參數(shù)北戏, 它們之間必須以英文逗號(hào)進(jìn)行分隔负芋,如 0,0,0,-100
-
*$setOverscan@1
通過授予 WRITE_SECURE_SETTINGS 權(quán)限的方式設(shè)置 Overscan 參數(shù) 1: 同任務(wù) *setOverscan 返回: 若設(shè)置成功,返回 true 若設(shè)置不成功嗜愈,則顯示錯(cuò)誤信息旧蛾,且不返回任何值
-
*$setOverscan@2
通過 Root 的方式設(shè)置 Overscan 參數(shù) 1: 同任務(wù) *setOverscan 返回: 同任務(wù) *$setOverscan@1
-
setOverscanSettingMode
設(shè)置當(dāng)前可用的 Overscan 設(shè)置方式 有以下 2 種方式 方式 1:WRITE_SECURE_SETTINGS 權(quán)限 方式 2:Root 若這 2 種方式都可用莽龟,則優(yōu)先使用方式 1, 若想改用方式 2锨天,可手動(dòng)將全局變量 %OVERSCAN_SETTING_MODE 設(shè)置為 2 若任一方式都不可用毯盈,將顯示錯(cuò)誤信息
-
$getOverscan
獲取當(dāng)前 Overscan 值 返回: 當(dāng)前 Overscan 值,如 0,0,0,-100
- 全局變量
-
%OVERSCAN_SETTING_MODE
任務(wù) *setOverscan 會(huì)根據(jù)該值調(diào)用設(shè)置 Overscan 的方式 1: WRITE_SECURE_SETTINGS 權(quán)限 2: Root 若沒有值病袄,則表示當(dāng)前沒有可用的 Overscan 設(shè)置方式
OverscanDemo
Overscan 的使用例子搂赋,僅供參考
- 任務(wù)
-
demo@Shrink Overscan
縮小 Overscan 區(qū)域的例子
-
demo@Expand Overscan
擴(kuò)大 Overscan 區(qū)域的例子
-
demo@Reset Overscan
重置 Overscan 區(qū)域的例子
使用方法
注:對(duì)于 No Root 的設(shè)備,其所安裝的 Tasker 必須為 5.2 及以上版本益缠,并使用 ADB 命令授予 WRITE_SECURE_SETTINGS
權(quán)限
- 下載并導(dǎo)入所需的 Tasker 項(xiàng)目(Project)
- 通過
執(zhí)行任務(wù)(Perform Task)
動(dòng)作運(yùn)行*setOverscan
任務(wù)(所傳入的參數(shù) 1 為要設(shè)置的 Overscan 值)
下載
注:需導(dǎo)入以下所有帶星號(hào)的項(xiàng)目(非星號(hào)項(xiàng)目可按需導(dǎo)入)
參考資料
- Overscan - Wikipedia
- Build layouts for TV | Android Developers
- Kitkat小屏幕模式單手操作研究之wm命令的實(shí)現(xiàn)方式分析
更新日志
- 1/23/2019
- 發(fā)布
原創(chuàng)內(nèi)容脑奠,轉(zhuǎn)載請(qǐng)注明出處