2011-04-08 1 views
0

교육을 목적으로 AR 응용 프로그램을 개발하려고합니다. 카메라 미리보기 (SurfaceHolder.Callback을 구현하는 SurfaceView)와 카메라 미리보기를 통해 텍스트를 그리는 다른 사용자 지정 표면이라는 두 가지보기가있는 FrameLayout을 포함하는 주요 활동이 있습니다. 이 FrameLayout이는 MainActivity의에서 onCreate 메소드 내 생성이 활동이 호출되는 첫 번째 활동이다다른 활동에서 내비게이션 할 때 카메라 미리보기 및 AR 항목이 표시되지 않습니다.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 

    try{ 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     //Panel for AR items 
     **panelSurface = new PanelSurface(this);** 

     WindowManager w = getWindowManager(); 
     Display d = w.getDefaultDisplay(); 
     int width = d.getWidth(); 
     int height = d.getHeight(); 
     panelSurface.setScreenSize(width, height); 


     loadARItems();    

     //General frame 
     FrameLayout rl = new FrameLayout(this); 
     //Camera Surface 
     **cv = new CustomCameraView(this);** 
     rl.addView(cv, width, height); 
     rl.addView(panelSurface, width, height); 
     setContentView(rl); 

     //Initialize sensors 
     sensorMan = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
     sensor = sensorMan.getDefaultSensor(Sensor.TYPE_ORIENTATION); 
     locMan = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    } 
    catch(Exception e){ 
     Log.e(TAG, "Error creating main activity: " + e.getMessage()); 
    } 
} 

경우 : 카메라 미리보기가 그 위에 내 AR 항목에 올바르게 표시됩니다. 그럼에도 불구하고 다른 활동에서 온 경우 문제가 나타납니다. 여러 버튼이 포함 된 메뉴 활동이 있습니다. 이 버튼 중 하나가 주 활동으로 호출됩니다.

다른 활동에서 탐색 할 때 카메라가 표시되지 않습니다 !! 화면이 검은 색으로 유지됩니다. 그리고 AR 항목은 한 번 그려 지지만 새로 고침되지는 않습니다. 이전에 모든 화면을 그렸습니다.

다른 활동에서 동일한 코드가 호출되면 올바르게 작동하지 않는 이유는 무엇입니까 ??? I는 체크인 두 시나리오 디버깅

: MainActivity가 로그 제 활동중인 경우 : 04-08 13 : 43 : 03.498 : INFO/ActivityManager (85) : 현재 재생 활동 com.lagunitacrew.activities/.MainActivity : 카메라를 열기 전에 929ms (총 929ms) 이 표시됩니다. 그러나 두 번째 시나리오에서 MainActivity가 Menu 활동에서 호출 될 때이 추적은 카메라를 연 후에 작성됩니다.

많은 감사 !!!

답변

0

활동이 배경으로 전환되면 현재 화면을 파괴하려고합니까? 문제는 camera.open() 함수가 작동하지 않는다는 것입니다. 응용 프로그램이 백그라운드로 이동하고 onPause 함수에서이 함수를 호출하면 UI를 삭제하는 함수를 작성하는 것이 좋습니다.

관련 문제