我有个问题。初始化相机进行预览并使另一个应用程序进入焦点后,然后返回我的应用程序:预览显示为黑色。如果我继续拍照,它会拍摄我通常将相机指向的位置的照片。
我在 OnResume() 覆盖上做错了什么吗?相关代码如下:
public void ReleaseCamera()
{
if (myCamera != null)
{
myCamera.Release();
myCamera = null;
}
}
protected override void OnPause()
{
base.OnPause();
if (myButtonState == ButtonState.CameraActive)
ReleaseCamera();
}
protected override void OnResume()
{
base.OnResume();
if (myButtonState == ButtonState.CameraActive)
InitializeCamera();
}
private void InitializeCamera()
{
SurfaceView mySurfaceView = FindViewById<SurfaceView>(Resource.Id.surfaceView1);
myCamera = Android.Hardware.Camera.Open(cameraNumber);
Android.Hardware.Camera.Parameters p = myCamera.GetParameters();
myCamera.SetDisplayOrientation(90); // Portrait
myCamera.SetPreviewDisplay(mySurfaceView.Holder);
myCamera.StartPreview();
}
感谢您的帮助。 :)
onResume() http://developer.android.com/reference/android/app/Activity.html#onResume%28%29被叫得太早了。此阶段您还没有准备好表面支架。你可以尝试介绍一下onPostResume() http://developer.android.com/reference/android/app/Activity.html#onPostResume%28%29您的 Activity 中的处理程序,和/或处理SurfaceHolder.Callback.surfaceChanged() http://developer.android.com/reference/android/view/SurfaceHolder.Callback.html#surfaceChanged%28android.view.SurfaceHolder,%20int,%20int,%20int%29 event.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)