您好,登錄后才能下訂單哦!
小編給大家分享一下surfacechanged出現的原因是什么,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
surfacechanged出現的原因
屏幕的分辨率是固定的,但是預覽的分辨率是可以修改的
打個比方,(以下單位都是px,為了方便理解我們固定手機為豎屏,橫向作為寬,縱向作為高)當前預覽的分辨率是1280960(4:3)手機屏幕分辨率是19201080(16:9)設置的surfaceview固定的情況下都是寬高都設置為match_parent,那么它的高寬就是屏幕的高寬為1920*1080。就導致我們強行把寬為960像素的圖片放到寬度為1080的畫布上導致橫向就有了一定的拉伸,同理縱向也被從1280拉到了1920,很顯然寬度放大了1080/960倍,高度放大了1920/1280倍,這兩個值肯定不相等,導致預覽變形。
surfacechanged解決方法
第一種選擇合適的分辨率
如上所說,既然屏幕分辨率是死的,那我們就先獲得屏幕分辨率再設置預覽分辨率和屏幕分辨率一樣,或者比例是一樣的不就好了。
1.獲取屏幕分辨率
2.設置預覽的分辨率(在此之前要先獲取此手機支持的分辨率,亂設置會有問題的)
這是我這臺測試機所支持的預覽分辨率
比如手機分辨率是19201080的,那取第一個調用parameters.setPreviewSize();函數就可以完美解決了。現在出現很多分辨率很高的手機,或者長屏的手機,作者的測試機屏幕分辨為22801080,然而又沒有合適的分辨率,這個方法就沒辦法解決了,看看第二種。
看完了這篇文章,相信你對“surfacechanged出現的原因是什么”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。