Android自定義照相機Camera出現(xiàn)黑屏的解決方法
本文實例講述了Android自定義照相機Camera出現(xiàn)黑屏的解決方法。分享給大家供大家參考,具體如下:
對于一些手機,像HTC,當自定義Camera時,調(diào)用Camera.Parameters的 parameters.setPreviewSize(width, height)方法時,如果width和height為奇數(shù)情況下,則會出現(xiàn)黑屏現(xiàn)象,解決辦法可參考SDK提供的ApiDemos中關(guān)于Camera的 例子:
List<Size> sizes = parameters.getSupportedPreviewSizes(); Size optimalSize = getOptimalPreviewSize(sizes, w, h); parameters.setPreviewSize(optimalSize.width, optimalSize.height);
同時,在HTC手機中,設置parameters.setPictureSize(width,height)屬性,也會導致黑屏,而在三星手機上則沒有問題。還有如果設置setPreviewSize屬性的寬高錯誤的話,拍出的照片也會存在失真等Bug,所以遇到適配問題時,最好的辦法就是不設置PreviewSize和PictureSize屬性。
getOptimalPreviewSize方法
private Size getOptimalPreviewSize(List<Size> sizes, int w, int h) { final double ASPECT_TOLERANCE = 0.05; double targetRatio = (double) w / h; if (sizes == null) return null; Size optimalSize = null; double minDiff = Double.MAX_VALUE; int targetHeight = h; // Try to find an size match aspect ratio and size for (Size size : sizes) { double ratio = (double) size.width / size.height; if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE) continue; if (Math.abs(size.height - targetHeight) < minDiff) { optimalSize = size; minDiff = Math.abs(size.height - targetHeight); } } // Cannot find the one match the aspect ratio, ignore the requirement if (optimalSize == null) { minDiff = Double.MAX_VALUE; for (Size size : sizes) { if (Math.abs(size.height - targetHeight) < minDiff) { optimalSize = size; minDiff = Math.abs(size.height - targetHeight); } } } return optimalSize; }
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android拍照與圖片處理技巧總結(jié)》、《Android開發(fā)入門與進階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設計有所幫助。
相關(guān)文章
android 實現(xiàn)ScrollView自動滾動的實例代碼
這篇文章主要介紹了android 實現(xiàn)ScrollView自動滾動的實例代碼,有需要的朋友可以參考一下2014-01-01Android開發(fā)中使用mms模塊收發(fā)單卡和雙卡短信的教程
這篇文章主要介紹了Android開發(fā)中使用mms模塊收發(fā)單卡和雙卡短信的教程,文中舉了MOTO XT800手機(估計已經(jīng)落伍很久了--)的例子來說明如何解決雙卡雙待時的短信異常問題,需要的朋友可以參考下2016-02-02Android開發(fā)實現(xiàn)的內(nèi)存管理工具類
這篇文章主要介紹了Android開發(fā)實現(xiàn)的內(nèi)存管理工具類,可實現(xiàn)計算手機內(nèi)部與外部的總存儲空間、可用存儲空間等功能,需要的朋友可以參考下2017-11-11Android開發(fā)實現(xiàn)ListView點擊item改變顏色功能示例
這篇文章主要介紹了Android開發(fā)實現(xiàn)ListView點擊item改變顏色功能,涉及Android布局及響應事件動態(tài)變換元素屬性相關(guān)操作技巧,需要的朋友可以參考下2017-11-11Android拍照保存在系統(tǒng)相冊不顯示的問題解決方法
我們保存相冊到Android手機的時候,然后去打開系統(tǒng)圖庫找不到我們想要的那張圖片,那是因為我們插入的圖片還沒有更新的緣故,下面與大家分享下此問題的解決方法2013-06-06Flutter?DateTime獲取本月的開始時間與結(jié)束時間方法
這篇文章主要為大家介紹了Flutter?DateTime獲取本月的開始時間與結(jié)束時間方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2023-05-05