Android中關(guān)于如何限制上層應(yīng)用只在特定區(qū)間畫圖-創(chuàng)新互聯(lián)

Android中關(guān)于如何限制上層應(yīng)用只在特定區(qū)間畫圖

有時候?qū)τ趍tk開發(fā)中有一個很特殊的需求。
那就是mtk的手機平臺不支持橫屏模式的display panel屏幕,只支持豎屏。
mtk的平板平臺才支持橫屏掃描的屏幕。這個可能是mtk兩個部門之間的策略規(guī)定。
其他rockchip、高通平臺沒有這種限制。
如果你需要用mtk手機平臺開發(fā)橫屏掃描的屏幕(注意不是豎屏橫著用,這是另外一種情況,豎屏橫著用,顯然mtk手機平臺直接就支持)。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),周村企業(yè)網(wǎng)站建設(shè),周村品牌網(wǎng)站建設(shè),網(wǎng)站定制,周村網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,周村網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

于是,你的解決辦法是,在驅(qū)動側(cè),把480240的橫屏,驅(qū)動側(cè)給mtk的mipi信息,故意改為480640的豎屏,但是屏幕其實是橫屏,所以clock故意按照480*640分辨率來計算。再做微調(diào)clock頻率,保證顯示是正確的。

然后你看到屏幕顯示只是480640的上面部分,因為屏幕實際只有480240。
而你返回給android上層的分辨率是480640的。
為此,為了讓上層應(yīng)用只知道屏幕只有480240,那么你需要修改如下地方:

對應(yīng)mtk Android L:修改:
frameworks/native/services/surfaceflinger/DisplayHardware/HWComposer.cpp
queryDisplayProperties()函數(shù)的
case HWC_DISPLAY_WIDTH 設(shè)置的config.width = 480;
case HWC_DISPLAY_HEIGHT 設(shè)置的config.height = 240;

對于mtk Android O(android 8.1)代碼:修改
frameworks/native/services/surfaceflinger/DisplayHardware/HWC2.cpp
Display::loadConfig()函數(shù)中,
.setWidth(480)
.setHeight(240)

說白了,就是上層surfaceflinger獲取display hardware屬性時,故意告訴他另外的分辨率480*240,這樣surfaceflinger在畫圖時,就按照這個目標(biāo)display分辨率就行render merge了。從而實現(xiàn)顯示效果。

另外需要注意mtk的kernel配置項defconfig文件中的:
CONFIG_MTK_LCM_PHYSICAL_ROTATION_HW=y
如果配置了這個,那么硬件就會旋轉(zhuǎn)180,從而顯示framebuffer的下半部份,而且是180度旋轉(zhuǎn)的。導(dǎo)致的結(jié)果是,你在surfaceflinger只畫了framebuffer的上半部,而硬件上顯示下版本,導(dǎo)致圖像顯示是framebuffer的下半部的隨機數(shù)據(jù)。所以不要設(shè)置CONFIG_MTK_LCM_PHYSICAL_ROTATION_HW=y

另外也要注意mtk的ProjectConfig.mk文件的 CONFIG_MTK_LCM_PHYSICAL_ROTATION="0"

另外我的相關(guān)培訓(xùn)視頻請看:
歡迎觀看我發(fā)布的各個課程: https://edu.51cto.com/lecturer/8896847.html
內(nèi)含免費視頻。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文標(biāo)題:Android中關(guān)于如何限制上層應(yīng)用只在特定區(qū)間畫圖-創(chuàng)新互聯(lián)
當(dāng)前地址:http://muchs.cn/article46/dcpdeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、App開發(fā)服務(wù)器托管、響應(yīng)式網(wǎng)站、外貿(mào)建站Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管