虛擬導航欄對螢幕解析度的影響(主要針對華為機)

2021-07-10 11:46:08 字數 1023 閱讀 4979

最近做乙個專案,在初始化相機時需要設定預覽解析度 ,我們採取和手機解析度相近的比例,例如4:3,或者16:9.的手機,預覽解析度的話選擇接近這一比例的一組資料,**如下:

camera.parameters parameters = camera.getparameters();

listlist = parameters.getsupportedpreviewsizes();

camera.size size;

int length = list.size();

int previewwidth = 480;

int previewheight = 640;

int second_previewwidth = 0;

int second_previewheight = 0;

if (length == 1)

else }}

else }}

else}}

}}}prewidth = previewwidth;

preheight = previewheight;

system.out.println("預覽解析度:" + prewidth + "    " + preheight);

parameters.setpictureformat(pixelformat.jpeg);

parameters.setpreviewsize(prewidth, preheight);

但是在華為手機上,由於虛擬導航欄的原因,會使得手機寬高出現偏差,如1920*1080的機器在豎屏時獲取的寬小於1080,這樣的話相機中的會出現輕微的變形,曾經想過利用沉浸模式去掉虛擬導航欄,結果導航欄不見了但是尺寸依舊不對,這裡提供乙個忽略虛擬導航欄,獲取手機真實尺寸的方法:

@suppresslint("newapi") private void setscreensize(context context)

else

} else

width = x;

height = y;}

經測試,此方法可行

調整螢幕的解析度

調整螢幕的解析度,在開始的時候進行調整並記錄原始的解析度,在程式退出的時候再調整到原始的狀態 結束時調整 if m bchangedisplay 啟動時調整 調整分辯率 m isyswidth getsystemmetrics sm cxscreen m isysheight getsystemme...

VMware虛擬機器螢幕大小(螢幕解析度)調整

vmware虛擬機器螢幕大小 螢幕解析度 調整 一,vmware中linux虛擬機器螢幕解析度調整之前安裝修改linux解析度命令列 在vmware中安裝linux虛擬機器後,螢幕解析度通常預設設定為800x600,並且不能通過 螢幕解析度首選項 視窗 系統 首選項 螢幕解析度 進行設定。一般情況下...

vSphere中虛擬機器的螢幕解析度修改

問題 正常安裝vmware 虛擬機器 和linux後,能選擇的最高解析度只有800 600,很不方便主選單 系統設定 顯示中設解析度設定為 1280 1024,色彩深度 上百萬顏色,然後確定,出現資訊 你需要登出並重新啟動x伺服器才能使改變生效。配置被寫入 etc x11 xf86config,原來...