Android解決相機預覽拉伸問題

2021-10-04 08:44:25 字數 1459 閱讀 8374

拉伸的原因

1.主要是由於su***ceview的尺寸和 相機預覽尺寸不一致造成的

@override

public

void

su***cechanged

(su***ceholder holder, int format, int width, int height)

log為

相機–》su***ceview: width–720

相機–》su***ceview: height–360

相機–》mcamera: width–1920

相機–》mcamera: height–1080

可以看到 su***ceview寬高比為2/1 但是相機預覽尺寸比為16/9,所以造成了拉伸

2.解決辦法獲取相機預覽的支援尺寸,動態設定最接近的尺寸

@override

public

void

su***cechanged

(su***ceholder holder, int format, int width, int height)

log為

相機–》surfcaeview: width–720

相機–》surfcaeview: height–360

相機–》closelypresize: width–1920

相機–》closelypresize: height–960

相機–》mcamera: width–1920

相機–》mcamera: height–960

可以看到此時相機和su***ceview的比例都為2/1,預覽就沒有了拉伸

3最後附上獲取接近比例的方法,

protected camera.size getcloselypresize

(int su***cewidth, int su***ceheight,

list presizelist)

else

//先查詢preview中是否存在與su***ceview相同寬高的尺寸

for(camera.size size : presizelist)

}// 得到與傳入的寬高比最接近的size

float reqratio =

((float) reqtmpwidth)

/ reqtmpheight;

float curratio, deltaratio;

float deltaratiomin = float.

max_value

; camera.size retsize =

null

;for

(camera.size size : presizelist)

}return retsize;

}

相機開發 學習

android相機拍照

拍照有兩種方式,一是使用android.hardware.camera,二是使用intent android.media.action.image capture 當然還是第一種好,不過 太複雜,以後有時間再說,這裡就說一下第二種方式吧。try catch exception e 這樣就可以呼叫系統...

Android之預覽PDF檔案

上週臨時收到客戶的說明書,說要放在應用裡顯示,本來覺得乙個非常簡單的事情沒想到一波三折。第一波 我使用了pdfviewer控制項 相了解的可以檢視 遇到的坑就是 因為裝置是橫屏的,這個控制項在手機上預覽pdf很不錯,我一下子沒有找到橫向鋪滿的方法,因此顯示起來頁面顯的非常小,由於時間比較急沒有去細細...

Android系統Camera預覽剛開啟時由暗變明

一 回憶下v4l2驅動操作流程 1.查詢驅動功能 struct v4l2 capability cap ioctl fd,vidioc querycap,cap printf tk driver name s ncard name s nbus info s n cap.driver,cap.car...