我創建了具有增強現實功能的活動。其中的一部分是在背景中顯示手機相機(這是Activity視圖中的SurfaceView)。如何在SurfaceView上繪圖時正確鎖定/解鎖相機?
在活動onCreate()方法我做的:
surfaceHolder = surfaceView.getHolder();
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surfaceHolder.addCallback(this);
我的回調是:
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
camera = Camera.open();
camera.setDisplayOrientation(90);
camera.setPreviewDisplay(holder);
} catch (Exception e) {
// e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
camera.startPreview();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
}
現在,當我關閉我的應用程序(在後臺離開它)相機的應用程序是不是因爲相機仍然鎖定在我的應用程序內。
我應該如何實現onResume()onPause()方法以鎖定/解鎖相機?
同時讓應用程序鎖定在應用程序佔用大約5%的CPU在Galaxy S上,並且在我回到我的應用程序後 - 它嘗試camera.startPreview()時崩潰在surfaceChanged()。
幫助!
解決。謝謝你沒有注意並讓它自己做。 – Kostas 2011-06-01 14:23:22
不客氣!我愛不注意。 – Nallath 2011-06-01 14:25:19
您應該發佈您的解決方案來幫助任何未來的開發人員解決此問題。 – 2011-06-01 15:36:09