교육을 목적으로 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 활동에서 호출 될 때이 추적은 카메라를 연 후에 작성됩니다.
많은 감사 !!!