0
在實施SurfaceHolder.Callback,一些在線教程提示(實際上,我發現這是谷歌在API演示寫)安卓:camera.setParameter問題
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Parameters params = camera.getParameters();
params.setPreviewSize(width, height);
camera.setParameters(params);
camera.startPreview();
}
然而,這是不實際的。在真實設備上,像這樣的代碼可能會在camera.setParameter(params)
上引發異常,因爲設備可能不支持指定的高度和寬度。
看完一些Q後&就像在stackoverflow上一樣,我明白了爲什麼這是不對的。那些帖子說我應該找一個最適合屏幕的。然後我決定使用params.getSupportedPreviewSizes();
打印我的手機(HTC Magic,android 2.1)支持的尺寸表。得到這些,不管手機的方向如何。
h:720 , w:1280
h:480 , w:800
h:480 , w:720
h:480 , w:640
h:432 , w:576
h:320 , w:480
h:240 , w:400
h:288 , w:384
h:288 , w:352
h:240 , w:320
h:272 , w:272
h:240 , w:240
h:160 , w:240
h:144 , w:176
畢竟,我對如何找到最適合屏幕的尺寸沒有任何線索。我現在對什麼是正確的程序感到困惑。我認爲這個計劃應該是相當普遍的,我不必自己想出一個。
任何人都可以幫助我,並發表一篇寫得好的public void surfaceChanged
樣本嗎?
謝謝!
我真的明白了。因爲這個參數是SurfaceHolder的參數,所以我打算在相機上設置它。 – Haozhun 2011-01-22 19:10:49